getExternalFilesDirs方法不会在4.4。+中返回外部可写SD路径

时间:2014-11-05 09:30:10

标签: android android-sdcard

我正在尝试获取SD的可写目录,该目录已安装并可从其他应用程序(如文件浏览器)访问。我在Hannspree平板电脑上使用Android 4.4.2。

我试图在关闭设备并使用设备

时插入SD卡

方法:

File[] list = ctx.getExternalFilesDirs(null);

它只返回外部(内部)内存文件(list.length == 1)

/mnt/sdcard/Android/data/com.packet.name/files/

我已经在清单中设置了必要的权限

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

如果读取/proc/mounts文件,我会得到两个已安装的目录

/mnt/sdcard -> READONLY false -> INTERNAL true 
/mnt/sd-ext -> READONLY false -> INTERNAL false

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

你需要做这样的事情希望它会帮助你

private getDir(File path)
{
    if (dir.exists()) {
    File[] files = dirPath.listFiles();
    for (int i = 0; i < files.length; ++i) {
    File folder = files[i];
    if (folder.isDirectory()) {
        Log.d("Directory Name : " , ""+folder.getName());
        Log.d("Writeable or not : " , ""+folder.canWrite());
        getDir(folder);

    } else {
       //Do what you want with files..
    }
 }
}