Android Q доступ к внешним папкам - PullRequest
1 голос
/ 06 ноября 2019

Итак, у меня возникла проблема с некоторыми из моих пользователей Android 10, которые не смогли сохранить или получить доступ к сохраненным данным на своем устройстве. Я обнаружил, что это связано с тем, что Android 10 теперь говорит, что мы можем получить доступ только к тем данным, которыесамо приложение создано и только в локальной папке?

Итак, я прошел и изменил свой код с Environment.getExternalStorageDirectory() на getExternalFilesDir(null) и заставил их вручную переместить файлы на свое устройство, и все снова работает правильно, кроме одной функции. Я разрешаю им экспортировать данные из базы данных sqlite в приложении в CSV, как я могу сделать это так, чтобы они по-прежнему были доступны в их папке загрузок для Android 10, и не нужно хранить их в папке каталога моих приложений?

1 Ответ

0 голосов
/ 07 ноября 2019

Вам необходимо использовать фреймворк SAF:

Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT); 
i.addCategory(Intent.CATEGORY_OPENABLE); 
i.setType("text/csv"); 
String filename = "test.csv"; 
i.putExtra(Intent.EXTRA_TITLE, filename);
startActivityForResult(i, 100);

, затем в onActivityResult:

Uri uri = data.getData();
OutputStream os = getContentResolver().openOutputStream(uri);
//write your file here
...