无法在外部公共存储中创建文件夹

时间:2018-03-30 13:46:44

标签: android android-external-storage

我试图在外部存储图片目录中创建一个子目录,但是,我总是在较低的if条件下结束。 (该目录不存在,mkdir无法创建它)。

    ...
    File storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "foto_test_app");
    if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
    {
        Log.e(LOG_TAG, "External Storage not mounted.");
        return null;
    }

    if(!storageDir.exists() && !storageDir.mkdir())
    {
        Log.e(LOG_TAG, "Directory not created.");
    }
    ...

我确实有清单文件中的行:

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

我在两个不同的设备上测试过它。两者都没有安装SDCard,但这不应该是一个问题,对吧?我错过了什么?

1 个答案:

答案 0 :(得分:1)

可能您使用的是Android Marshmallow或更高版本。 您需要确保已授予存储的运行时权限。

这可以通过在Android设备的设置中明确设置或在运行时请求权限来完成。

您可以查看以下链接运行时权限的工作方式

https://developer.android.com/training/permissions/requesting.html