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"/>
是的,我有使用权限读取外部存储。并且安装了SD卡。 –