我试图在外部存储图片目录中创建一个子目录,但是,我总是在较低的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,但这不应该是一个问题,对吧?我错过了什么?
答案 0 :(得分:1)
可能您使用的是Android Marshmallow或更高版本。 您需要确保已授予存储的运行时权限。
这可以通过在Android设备的设置中明确设置或在运行时请求权限来完成。
您可以查看以下链接运行时权限的工作方式
https://developer.android.com/training/permissions/requesting.html