Как вывести список всех файлов PDF на Android 10? - PullRequest
2 голосов
/ 04 ноября 2019

Поскольку изменения касаются авторизации доступа к общему хранилищу, больше не представляется возможным искать все документы типа pdf при таком подходе (с requestLegacyExternalStorage = "false"):

ContentResolver cr = context.getContentResolver();
Uri uri = MediaStore.Files.getContentUri("external");
String[] projection = null;
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
                    + MediaStore.Files.FileColumns.MEDIA_TYPE_NONE;
String[] selectionArgs = null;
String sortOrder = null;
Cursor allNonMediaFiles = cr.query(uri, projection, selection, selectionArgs, sortOrder);

Проверьте эту ссылку: Ограничения данных мультимедиа

Единственное решение, которое я вижу, - это рекурсивное сканирование всего дерева общего хранилища с помощью SAF, что мне кажется оченьдорого в ресурсах и смешно.

У кого-нибудь есть другая идея?

1 Ответ

1 голос
/ 05 ноября 2019

Основная идея хранилища с определенной областью - именно для того, чтобы избежать такого поведения, вы не можете знать, есть ли какие-либо файлы в телефоне пользователя. Вы можете просто запросить разрешение на доступ к дереву хранилища и сканировать все, как вы сказали. Даже в этом случае пользователь может выбрать папку, отличную от корневой, так что ваше приложение будет ограничено этой папкой. Идея может состоять в том, чтобы выполнить сканирование, а затем обновить синхронизацию базы данных, используя задание (службу заданий), запланированное для изменения URI дерева и потомков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...