【发布时间】:2017-07-27 17:38:07
【问题描述】:
我想从我的 android 应用程序读取另一个目录中的文本文件,即 Games Directory(/sdcard/Android/data/game_package_name/files)。
有什么办法吗,如果有,请指教。
注意:这是针对生产级应用程序,因此请避免使用任何特定于 root 的功能。
【问题讨论】:
标签: java android c++ unity3d android-api-levels
我想从我的 android 应用程序读取另一个目录中的文本文件,即 Games Directory(/sdcard/Android/data/game_package_name/files)。
有什么办法吗,如果有,请指教。
注意:这是针对生产级应用程序,因此请避免使用任何特定于 root 的功能。
【问题讨论】:
标签: java android c++ unity3d android-api-levels
基本上,你cannot access another application's sandbox。 但是,如果您可以修改其他应用程序,则可以使用ContentProvider 或类似的共享解决方案来提供从其他应用程序访问此特定文件的权限。
由于您想从不同的应用程序访问文件,而其中一个应用程序的沙箱将无法从另一个应用程序访问,您应该将文件写入两个都可以访问的目录中,例如:
String fileName = Environment.getExternalStorageDirectory().getPath() + "myFolderForBothApplications/myFileNameForBothApplications.txt";
如果您希望将文件保留为一个应用程序的一部分,您仍然可以通过 ContentProvider 公开信息。
在其中,覆盖public ParcelFileDescriptor openFile(Uri uri, String mode) 方法,而在其他应用程序中,只需使用方法getContentResolver().openInputStream(...)。
这里有一些相关主题的链接,我无耻地复制/粘贴了代码:
【讨论】: