Я хочу прочитать текстовый файл, представленный в другом каталоге, т.е. в каталоге игр (/ sdcard / Android / data / game_package_name / files) из моего приложения для Android.
Есть ли способ сделать это, если да, то, пожалуйста, предложите.
Примечание: это для приложения производственного уровня, поэтому, пожалуйста, избегайте каких-либо корневых функций.
В основном вы не может получить доступ к песочнице другого приложения.
Однако, если вы можете изменить другое приложение, вы можете использовать Поставщик услуг или аналогичное решение совместного доступа для предоставления доступа к этому конкретному файлу из других приложений
Поскольку вы хотите получить доступ к файлу из разных приложений, а песочница из одного не будет доступна из другого, вы должны записать свой файл в каталог, доступный из обоих, например:
String fileName = Environment.getExternalStorageDirectory().getPath() + "myFolderForBothApplications/myFileNameForBothApplications.txt";
Если вы предпочитаете хранить свой файл как часть одного приложения, вы все равно можете предоставить информацию через ContentProvider.
В нем переопределите public ParcelFileDescriptor openFile(Uri uri, String mode)
метод, а в другом приложении просто используйте метод getContentResolver().openInputStream(...)
.
И вот несколько ссылок на связанные темы, откуда я беззастенчиво скопировал / вставил код:
Других решений пока нет …