1

我发现当我使用下面的代码时,它可以在 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;
}
4

1 回答 1

0

我建议您首先找到 sd 卡中的可用空间阅读此文档可能会对您有所帮助 http://developer.android.com/reference/android/os/StatFs.html

于 2013-08-02T08:51:35.517 回答