我想从我的Android应用程序中读取存在于不同目录中的文本文件,即游戏目录(/ sdcard / Android / data / game_package_name / files)。
有没有办法这样做,如果是,那么请建议。
注意:这适用于生产级应用程序,因此请避免使用任何特定于root的功能。
答案 0 :(得分:0)
基本上,你是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(...)
。
这里有一些相关主题的链接,我无耻地复制/粘贴代码: