特定の拡張子を含む SD カードのすべてのファイルを一覧表示する Android アプリを作成しようとしています。例: pdf、mp3、txt など。
Android MediaStoreクラスの getContentURI メソッドを使用してみました。
MediaStore.Files.getContentUri("");
ただし、これはハニカム以降のバージョンでのみサポートされていますが、私のアプリはジンジャーブレッドもサポートする必要があります。
私が遭遇した別の方法は、Apache の FileUtils クラスで、そのコードを以下に示します。
File externalContentDirectory=Environment.getExternalStorageDirectory();
String[] extensions = new String[] {"mp3","pdf","txt"};
Collection<File> files=FileUtils.listFiles(externalContentDirectory, extensions,true);
問題は、低速の電話ですべてのファイルを一覧表示するのに時間がかかりすぎて、これが原因でアプリケーションが何度もクラッシュすることです。
より高速で効率的なファイルを一覧表示するための Android 固有の方法はありますか?