我发现当我使用下面的代码时,它可以在 AVD 上运行,但是当我在物理设备或 Bluestacks 上打开它时 - 列表是空的,即使音乐文件在 sdcard 上。有谁知道发生了什么?
而且,如果你知道如何让它从内存中读取文件,我将不胜感激,因为我发现 - 许多手机具有大内存容量并且它们不使用 sd 卡(其中一些甚至不能)。
这是代码:
static Uri[] mUris;
static String[] mFiles = null;
public static String[] getMusic(){
File music = Environment.getExternalStorageDirectory();
// File asd = Environment.
// String[] savedFiles = getApplicationContext().fileList();
File[] musicList = music.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return ((name.endsWith(".mp3")||(name.endsWith(".wav"))));
}
});
mFiles = new String[musicList.length];
for(int i=0; i<musicList.length;i++) {
mFiles[i]=musicList[i].getAbsolutePath();
}
return mFiles;
}