Вы можете использовать что-то вроде этого:
String extPath = Environment.getExternalStorageDirectory().getAbsolutePath();
String pathPrefix = extPath + "/Android/data/" + APP_PACKAGE_ID + "/cache/";
, чтобы сохранить файл на SD-карту, которая доступна для всех других приложений.Для этого достаточно режима Context.MODE_WORLD_READABLE
.Код предназначен для использования с Android 2.1 и использует предложенный путь для хранения данных, связанных с приложением, на SD-карте.Начиная с Android 2.2, этот каталог автоматически удаляется при удалении приложения.
Ваше приложение нуждается в праве для установки на SD-карту:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Использование openFileOutput(...)
с правами на чтение для всехнемного бесполезен, поскольку эти файлы хранятся в папке, доступной только для самого приложения.
Более подробная информация описана в документации по хранению данных .
Обратите внимание, что внешняя память может быть недоступна, если пользователь подключил устройство через USB для доступа к хранилищу файлов.Вы должны всегда проверять эти условия сначала через String state = Environment.getExternalStorageState();
.