Я пытаюсь создать приложение для Android, в котором перечислены все файлы с SD-карты, содержащие определенное расширение. Например: pdf, mp3, txt и т. д.
Я попытался использовать метод getContentURI класса android MediaStore.
MediaStore.Files.getContentUri("");
Но это поддерживается только в Honeycomb и более поздних версиях, тогда как мое приложение также должно поддерживать пряники.
Другой метод, с которым я столкнулся, — это класс FileUtils Apache, код которого показан ниже.
File externalContentDirectory=Environment.getExternalStorageDirectory();
String[] extensions = new String[] {"mp3","pdf","txt"};
Collection<File> files=FileUtils.listFiles(externalContentDirectory, extensions,true);
Проблема в том, что перечисление всех файлов занимает слишком много времени на более медленных телефонах, и много раз из-за этого приложение вылетает.
Есть ли какой-либо другой способ для Android, чтобы вывести список файлов, который быстрее и эффективнее?