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

Android 无法在外部公共存储中创建文件夹,android,android-external-storage,Android,Android External Storage,我试图简单地在外部存储图片目录中创建一个子目录,但是,我总是以较低的if条件结束。目录不存在,mkdir无法创建它 ... File storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "foto_test_app"); if(!Environment.MEDIA_MOUNTED.equals(Environment.get

我试图简单地在外部存储图片目录中创建一个子目录,但是,我总是以较低的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"/>

我在两个不同的设备上测试了它。两者都没有安装SD卡,但这不应该是一个问题,对吗?我遗漏了什么?

您可能正在使用Android棉花糖或更高版本。 您需要确保已授予存储的运行时权限

这可以通过在android设备的设置中显式设置或在运行时请求许可来实现

您可以在下面的链接中查看运行时权限是如何工作的


你试过storageDir.mkdirs而不是storageDir.mkdir吗?是的,效果同样糟糕:听起来很傻,但你能试着交换一下吗!storageDir.mkdir和!storageDir.存在吗?谢谢,你给我指出了正确的方向,这就解决了问题。我在平板电脑的设置中激活了“存储”权限,之后,我可以创建所需的文件夹。这可能只是一个快速开发的黑客,但暂时有效。非常感谢你的帮助。然而,我使用的不是安卓棉花糖,而是7.0版,所以如果你能将答案改为安卓棉花糖或更高版本,这将帮助很多人。