Android 如何判断此文件是从我的应用程序创建的?
我正在Android上制作混音器应用程序,用户可以创建混音,将混音导出到mp3文件,并将混音上传到服务器共享 现在我把所有的混音都保存在我在手机sd卡上创建的文件夹中。我使用mp3扩展名过滤文件,以便在我的应用程序的列表中显示,但它可以显示任何具有mp3扩展名的文件,甚至可以显示我复制到此文件夹的其他mp3文件 如果我不能解决这个问题,用户会将此文件夹中的任何mp3文件上载到服务器 是否有任何方法可以标记文件是否是从我的应用程序创建的Android 如何判断此文件是从我的应用程序创建的?,android,algorithm,file,Android,Algorithm,File,我正在Android上制作混音器应用程序,用户可以创建混音,将混音导出到mp3文件,并将混音上传到服务器共享 现在我把所有的混音都保存在我在手机sd卡上创建的文件夹中。我使用mp3扩展名过滤文件,以便在我的应用程序的列表中显示,但它可以显示任何具有mp3扩展名的文件,甚至可以显示我复制到此文件夹的其他mp3文件 如果我不能解决这个问题,用户会将此文件夹中的任何mp3文件上载到服务器 是否有任何方法可以标记文件是否是从我的应用程序创建的 另外,我愿意接受这里的任何建议 我不能发表评论,所以我会把我
另外,我愿意接受这里的任何建议 我不能发表评论,所以我会把我的建议放在这里 第一个想法是在每个文件的元数据中添加一些内容,比如你的应用程序的名称可以放入composer槽中。然后,您可以在上传/显示每个文件之前对其进行扫描 当然,用户可以自己添加元数据并将任何内容上传到服务器
另一个想法是使用加密。我不知道哪一个在你的应用程序中最有效,但你可以加密文件,在元数据中添加签名,用签名命名文件,或者做其他事情。验证每个文件的签名至少可以防止人们随意乱搞东西。问题是用户上传的mp3不是你的应用程序创建的 您可以通过将它们存储在内部存储器而不是SD卡上来实现这一点(除非用户有意干预) 如果它们必须存储在外部存储中,Android 4.4+上可以使用私有外部存储。请参阅并向下滚动至保存应用程序专用的文件
您无法阻止某人将您不想上传的文件上传到您的服务中,但这听起来并不是您的问题。您有什么理由需要将文件另存为设备上的mp3吗?最好使用一些专有的文件扩展名保存它们,然后如果需要,将其转换回
.mp3
服务器端。此外,您可以考虑将文件存储在用户无法手动访问的内部存储中。是否应该保存没有扩展的文件并将文件存储在内部存储中?但是一部有根的手机仍然可以访问这个目录,不是吗?恐怕没有防弹的方法来处理这个问题,像这样的事情总是会被破坏的,因为还有一些方法可以反编译APK,查看(模糊的)源代码,或者仅仅查看网络流量。