私は音楽にアクセスするアプリを持っていますが、少なくとも 1 人のユーザーから、自分の曲の一部が内部ストレージにあるために強制終了するという苦情がありました。
私の質問は、曲ごとに 2 つの呼び出しを行う必要があるか、それとも内部メモリと外部メモリの両方を調べるクエリを作成できるかということです。
私は音楽にアクセスするアプリを持っていますが、少なくとも 1 人のユーザーから、自分の曲の一部が内部ストレージにあるために強制終了するという苦情がありました。
私の質問は、曲ごとに 2 つの呼び出しを行う必要があるか、それとも内部メモリと外部メモリの両方を調べるクエリを作成できるかということです。
マルチメディアは私の強みではありませんが、メディアスキャナーは何がどこにあるかを示すインデックスを保持すると思います。別のオプションは、メディアファイルが配置されている起動を確認しSharedPreferences、後で使用するためにこのデータを記録することです。
この投稿で私の答えを見てください: https ://stackoverflow.com/a/13935210/1716620
ContentProviderが鍵です
外部メモリと内部メモリを使用して画像を保存するアプリケーションがあり、ある状況でギャラリーを使用して画像を表示する必要があり、内部メモリを指すuriを渡そうとするとエラーが発生しました
https://stackoverflow.com/a/13935210/1716620
そのようにして私は私の問題を解決しました...そしてあなたの:)
複数のフラッシュ(SD)デバイスの標準がないため、メーカーが MediaProvider/Scanner などをどのように実装したかによって異なります。