#java #android
#java #Android
Вопрос:
Проблема — у меня есть приложение, которое генерирует файлы GPX. Они могут храниться в «файлах» приложения и использоваться совместно по запросу пользователя. НО некоторые пользователи хотели бы поделиться (синхронизировать) напрямую — весь каталог. Таким образом, они обмениваются фотографиями и не только… Моя цель — создать каталог, а затем сохранить файлы, если пользователь этого захочет. Каталог типа:
sdcard / MyName/
, который будет содержать файлы GPX для прямого доступа пользователей. android:requestLegacyExternalStorage=»true» — не вариант. У меня есть время, чтобы должным образом модифицировать приложение, готовое для Android 11 и next …
Наследие в какой-то момент будет отменено…. Когда я использую приведенный ниже код, меня отправляют на загрузку:
public void openDirectory() {
String path=Environment.getExternalStorageDirectory().getPath();
path =File.separator "Downloads" File.separator "MyName" File.separator;
Log.e("OD",path);
Uri uri = Uri.parse(path);
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, uri);
startActivityForResult(intent, SelDir);
}
Я также пробовал :
File dir=new File(path);
Uri ui=FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID ".provider",dir);
И ошибка:
Не удалось найти настроенный корень, содержащий /storage/emulated/0/Downloads/MyName
В filepaths.xml — путь=».»
Я перепробовал множество путей — например, MyName, Downloads / MyName ….
Комментарии:
1.
Legacy in some moment will be canceled..
Что вы имеете в виду? Даже если вы нацелены на 30, он будет работать на устройстве Android 10. Просто используйте его. Для Android 11 все снова намного проще, так как у вас есть доступ на запись ко всем общедоступным папкам в корневом каталоге внешнего хранилища.