#java #android #pdf #mobile #mediastore
Вопрос:
Может кто-нибудь помочь мне с этой проблемой, я пытаюсь получить список PDF-файлов из внешнего хранилища, но массив всегда пуст, это мой код:
Заранее спасибо.
Это мой код:
public static ArrayList<String> getPdfFiles(Context context) {
ArrayList<String> listOfAllFiles = new ArrayList<>();
Uri uri = MediaStore.Files.getContentUri("external");
ContentResolver cr = context.getContentResolver();
String[] projection = {MediaStore.MediaColumns.DATA};
// only pdf
String selectionMimeType = MediaStore.Files.FileColumns.MIME_TYPE "=?";
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("pdf");
String[] selectionArgsPdf = new String[]{ mimeType };
Cursor allPdfFiles = cr.query(uri, projection, selectionMimeType, selectionArgsPdf, null);
while (allPdfFiles.moveToNext()) {
int nameIndex= allPdfFiles.getColumnIndex(MediaStore.Files.FileColumns.TITLE);
String name= allPdfFiles.getString(nameIndex);
listOfAllFiles.add(name);
}
return listOfAllFiles;
}
Комментарии:
1. Пожалуйста, не предоставляйте моментальные снимки кода. Предоставьте код, который вы пытаетесь использовать, в виде текста.
2. Не могли бы вы добавить свой код в виде текста,,,
3. Привет @PawaraSiriwardhane, я обновил свой пост. Спасибо
4. Это здорово. Спасибо вам тоже за исправление поста.
5. просто отметим, что для Android 10 столбец _DATA не существует. Однако он был вновь представлен для Android 11. Также почему бы просто не поискать расширение .pdf, например, из переменной столбца _DATA.EndsWith(*.pdf»), намного проще