Android Q FileChooser SecurityException - PullRequest
1 голос
/ 19 января 2020

Я довольно новичок в Android программировании. Я хочу открыть каталог и получить постоянный доступ для чтения по нему. Я добавляю флаг FLAG_GRANT_PERSISTABLE_URI_PERMISSION к цели.

 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
 startActivityForResult(Intent.createChooser(intent, null), MY_REQUEST);

На методе onActivityResult я выбираю data, чтобы получить uri как

Uri uri = data.getData()
cUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri,
DocumentsContract.getTreeDocumentId(uri));
getContentResolver().takePersistableUriPermission(cUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);

I получил SecurityException: No persistable permission grants found Но права доступа установлены как intent.flag.

Почему я получил эту ошибку и как ее избежать?

Спасибо, Питер

1 Ответ

0 голосов
/ 19 января 2020

Я добавляю флаг FLAG_GRANT_PERSISTABLE_URI_PERMISSION к цели

Это не то, для чего этот флаг.

На методе onActivityResultMethode я получаю данные в получить URI, как

Удалить cUri. Используйте uri с takePersistableUriPermission().

...