Android程序崩溃和.android_secure

时间:2011-08-09 16:51:18

标签: android

我正在开发一个针对校队的MP3播放器android项目,到目前为止只包含一个活动,递归地添加手机SD卡上的所有mp3文件。

我的应用程序一直在崩溃,经过大量调试后我注意到原因是它找到了一个隐藏的目录/sdcard/.android_secure,当它尝试调用此目录上的listFiles()时,应用程序崩溃了。我通过排除隐藏文件被处理来解决问题。

我的问题是这里到底发生了什么?我认为我的应用程序无权访问.android_secure的内容。是否有更强大的扫描SD卡的方法?

我在下面添加了相关代码。任何帮助表示赞赏。

    File storage = Environment.getExternalStorageDirectory();
    addMp3Files(storage);
}

private void addMp3Files(File rootDir) {
    for (File file : rootDir.listFiles()) {
        if (file.getName().toLowerCase().endsWith(".mp3")) {
        songs.add(file.getAbsolutePath());
        } else if (file.isDirectory() && !file.isHidden()) {
            addMp3Files(file);
        }
    }
}

1 个答案:

答案 0 :(得分:3)

.android_secure文件夹用于App2SD功能。已移至SD卡的应用程序文件存储在此处。如果您检查权限位,则可以看到它是------;即,您的应用程序没有此文件夹的读取权限。这就是它崩溃的原因 要排除应用程序无法读取的文件和文件夹,例如.android_secure,您可以使用file.canRead()方法检查它们。