我正在编写一个小应用程序,它可以读取需要定期写入设备存储的文件,这些文件来自于设备外部的源,例如 USB、蓝牙、Airdroid 等。从我所了解的情况来看,没有任何东西可以写入内部存储。我希望将文件管理在内部存储中以保护访问隐私。
我的第一个解决方案是创建一个活动,让用户将文件写入外部存储,然后点击按钮将它们转移到内部存储。如果在 n 分钟内没有完成这个操作,则外部存储中的文件将被销毁。但是,我发现 getExternalStorageDirectory
几乎没什么用处,因为设备会在内部存储中模拟外部存储,而 Android 无法确定是否以及如何完成此操作。
然而,我想知道是否有一种内置活动,允许用户直接上传或下载内部存储中的文件,但不允许完全访问内部存储的整个文件结构,就像他们访问内部存储一样。
作为最后的手段,也许我的应用程序可以通过 TCP 连接接收文件并将其写入内部存储。虽然有点麻烦,但寻找 SD 卡也是一样。请参见问题 查找外部 SD 卡位置。
更新: 这个任务的目标是在 SD 卡上的一个目录中查找所有 .csv 文件,让用户选择其中一个文件,对其进行处理,并将输出文件写入 SD 卡。用户将输入一个“重量”值,该值将用于处理文件的计算中。
但是,由于 Android 在提供真正的外部存储位置(即 SD 卡)方面非常不可靠,我想尝试将文件存储在内部存储中,在这里 Android 似乎更加诚实和可靠。
data/data/package_name/
,这样做将不允许其他应用程序访问它?” - Saravanabalagi Ramachandran