Не работают файловые библиотеки Android 10
У меня есть программа, у которой в настройках есть функция, где нужно выбрать папку. Я использовал библиотеку bartwell/ExFilePicker. Проблема заключается в том, что ниже приведенный код не работает на Android 10, но прекрасно работает на прошлых версиях. В чем заключается проблема, что то не дописано или это особенности 10ки?
public void onFolderClick(View view) {
ExFilePicker exFilePicker = new ExFilePicker();
exFilePicker.setChoiceType(ExFilePicker.ChoiceType.DIRECTORIES);
exFilePicker.setCanChooseOnlyOneItem(true);
switch (view.getId()) {
case R.id.audioFolder_pref:
key = AUDIO;
break;
case R.id.picFolder_pref:
key = PIC;
break;
case R.id.textFolder_pref:
key = TEXT;
break;
}
exFilePicker.start(this, EX_FILE_PICKER_RESULT);
}
String pathStr;
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == EX_FILE_PICKER_RESULT && data != null) {
if (resultCode == RESULT_OK) {
Uri file = data.getData();
//получить путь папки
pathStr = file.getPath();
switch (key) {
case AUDIO:
userPref.setAudioFolder(pathStr);
break;
case PIC:
userPref.setPicFolder(pathStr);
break;
case TEXT:
userPref.setTextFolder(pathStr);
break;
}
setFolderText();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Ответы (1 шт):
Автор решения: Barmaley
→ Ссылка
Все правильно. Не будет работать. Начиная с Android Q (API level=29) введено понятие Scoped Storage - в соответствии с которым сильно ограничен доступ к файлам во внешнем хранилище.
bartwell/ExFilePicker - написан в 2013 году и уже морально устарел.