Android扫描可移动SD卡中的所有音频文件

Android扫描可移动SD卡中的所有音频文件

问题描述:

我试图扫描我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; 
} 

您是否使用读取外部存储的权限?

如果未装入SDcard,则Environment.getExternalStorageDirectory()返回内部存储目录。

尝试使用下面的权限如果不使用目前:

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

是的,我有使用权限读取外部存储。并且安装了SD卡。 –