2017-07-27 4 views
1

SDカード内のすべてのオーディオファイルをスキャンしようとしています。ここにそれを担当するコードの断片があります。しかし、リムーバブルSDカードからではなく、内部ストレージからファイルを返すだけです。AndroidでリムーバブルSDカードのすべてのオーディオファイルをスキャンする

{.. 
final ArrayList<File> mySongs = findSongs(Environment.getExternalStorageDirectory()); 
..} 

public ArrayList<File> findSongs(File root) { 
    ArrayList<File> al = new ArrayList<>(); 
    File[] files = root.listFiles(); 
    for (File singleFile : files) { 
     if (singleFile.isDirectory() && !singleFile.isHidden()) { 
      al.addAll(findSongs(singleFile)); 
     } else { 
      if (singleFile.getName().endsWith(".mp3")||singleFile.getName().endsWith(".m4a")||singleFile.getName().endsWith(".wav")) { 
       al.add(singleFile); 
      } 
     } 
    } 
    return al; 
} 

答えて

-1

外部ストレージを読み取る権限を使用していますか?

Environment.getExternalStorageDirectory()は、SDcardがマウントされていない場合は内部ストレージディレクトリを返します。現在使用していない場合は

は許可の下に使用してみてください:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
+0

はい、私は、外部記憶装置を読み取るためのアクセス許可を使用しています。 SDカードが装着されています。 –

関連する問題