2017-07-27 137 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

您是否使用讀取外部存儲的權限?

如果未裝入SDcard,則Environment.getExternalStorageDirectory()返回內部存儲目錄。

嘗試使用下面的權限如果不使用目前:

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

是的,我有使用權限讀取外部存儲。並且安裝了SD卡。 –