MediaStore.Audio.Media コンテンツ プロバイダーの SD カードに mp3 ファイルが保存されているかどうかを確認するコード セクションがあります。
問題は、状況がどうであれということです。変数「audioFilename」に格納されたパス名のファイルがSDカード上に存在するかどうか。結果として常に「このファイルは存在しません」を返します。変数 audioFilename には「/mnt/sdCard/Music/Jungle.mp3」という文字列パス名が格納されているにもかかわらず、この MP3 ファイルは実際には SD カード上にあります。トーストメッセージとSDカードの内容の確認で簡単に証明できます。
ファイルまたは環境クラスの使用にエラーがある可能性があります。ここに示されているコードに問題が見られる人はいますか?
// toast message to prove that the audioFilename is not null,
// message displayed is the string, "File name: /mnt/sdCard/Music/Jungle.mp3"
Toast.makeText(Editor.this, "File name: " + audioFilename,
Toast.LENGTH_LONG).show();
// the code below always returns "this file does not exist"
File extStore = Environment.getExternalStorageDirectory();
File myFile = new File(extStore.getAbsolutePath() + "audioFilename");
if(myFile.exists()){
Toast.makeText(Editor.this, "<<<< this file exists, it is: "+audioFilename+" >>>>",
Toast.LENGTH_LONG).show();
} else if(!myFile.exists()){
Toast.makeText(Editor.this, "<<<< this file does not exist >>>> ",
Toast.LENGTH_LONG).show();
}
Toast.makeText(Editor.this, "audio file name is: "+ audioFilename,
Toast.LENGTH_LONG).show();