Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何判断此文件是从我的应用程序创建的?_Android_Algorithm_File - Fatal编程技术网

Android 如何判断此文件是从我的应用程序创建的?

Android 如何判断此文件是从我的应用程序创建的?,android,algorithm,file,Android,Algorithm,File,我正在Android上制作混音器应用程序,用户可以创建混音,将混音导出到mp3文件,并将混音上传到服务器共享 现在我把所有的混音都保存在我在手机sd卡上创建的文件夹中。我使用mp3扩展名过滤文件,以便在我的应用程序的列表中显示,但它可以显示任何具有mp3扩展名的文件,甚至可以显示我复制到此文件夹的其他mp3文件 如果我不能解决这个问题,用户会将此文件夹中的任何mp3文件上载到服务器 是否有任何方法可以标记文件是否是从我的应用程序创建的 另外,我愿意接受这里的任何建议 我不能发表评论,所以我会把我

我正在Android上制作混音器应用程序,用户可以创建混音,将混音导出到mp3文件,并将混音上传到服务器共享

现在我把所有的混音都保存在我在手机sd卡上创建的文件夹中。我使用mp3扩展名过滤文件,以便在我的应用程序的列表中显示,但它可以显示任何具有mp3扩展名的文件,甚至可以显示我复制到此文件夹的其他mp3文件

如果我不能解决这个问题,用户会将此文件夹中的任何mp3文件上载到服务器

是否有任何方法可以标记文件是否是从我的应用程序创建的


另外,我愿意接受这里的任何建议

我不能发表评论,所以我会把我的建议放在这里

第一个想法是在每个文件的元数据中添加一些内容,比如你的应用程序的名称可以放入composer槽中。然后,您可以在上传/显示每个文件之前对其进行扫描

当然,用户可以自己添加元数据并将任何内容上传到服务器


另一个想法是使用加密。我不知道哪一个在你的应用程序中最有效,但你可以加密文件,在元数据中添加签名,用签名命名文件,或者做其他事情。验证每个文件的签名至少可以防止人们随意乱搞东西。

问题是用户上传的mp3不是你的应用程序创建的

您可以通过将它们存储在内部存储器而不是SD卡上来实现这一点(除非用户有意干预)

如果它们必须存储在外部存储中,Android 4.4+上可以使用私有外部存储。请参阅并向下滚动至保存应用程序专用的文件


您无法阻止某人将您不想上传的文件上传到您的服务中,但这听起来并不是您的问题。

您有什么理由需要将文件另存为设备上的mp3吗?最好使用一些专有的文件扩展名保存它们,然后如果需要,将其转换回
.mp3
服务器端。此外,您可以考虑将文件存储在用户无法手动访问的内部存储中。是否应该保存没有扩展的文件并将文件存储在内部存储中?但是一部有根的手机仍然可以访问这个目录,不是吗?恐怕没有防弹的方法来处理这个问题,像这样的事情总是会被破坏的,因为还有一些方法可以反编译APK,查看(模糊的)源代码,或者仅仅查看网络流量。