Java 无法在android API 24或更高版本的设备中创建目录

Java 无法在android API 24或更高版本的设备中创建目录,java,android,android-permissions,android-external-storage,Java,Android,Android Permissions,Android External Storage,我已经开发了我的android应用程序,并通过模拟器(Genymotion)在支持最低的SDK(即API 18 Jellybean)中对其进行了测试。有一个用例,我必须下载pdf文件并将其保存在外部存储器中。这在API 18仿真器中正常工作,没有任何问题。然后我决定在我自己的设备上测试它,这是一个API为24的华为Honor6x,但我得到了一个FileNotFoundException。调试之后,我发现它并没有在外部存储器中创建目录。为了交叉检查这是否是我自己的设备特有的问题,我安装了另外两个带

我已经开发了我的android应用程序,并通过模拟器(Genymotion)在支持最低的SDK(即API 18 Jellybean)中对其进行了测试。有一个用例,我必须下载pdf文件并将其保存在外部存储器中。这在API 18仿真器中正常工作,没有任何问题。然后我决定在我自己的设备上测试它,这是一个API为24的华为Honor6x,但我得到了一个FileNotFoundException。调试之后,我发现它并没有在外部存储器中创建目录。为了交叉检查这是否是我自己的设备特有的问题,我安装了另外两个带有API 24的模拟器(Pixel XL和Galaxy S7)。我也犯了同样的错误。是否有任何安全功能阻止我在never版本中创建文件夹

这是我的密码

我有以下权限

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

感谢你的帮助,因为我已经被困在这几天了

确保已授予
android.permission.WRITE\u EXTERNAL\u STORAGE
权限

int code = context.getPackageManager().checkPermission(
    android.Manifest.permission.WRITE_EXTERNAL_STORAGE, 
    context.getPackageName());
if (code == PackageManager.PERMISSION_GRANTED) {
   // todo create directory
}

谢谢你的快速回复。测试许可。你是对的。权限似乎没有设置。除了在清单文件中设置权限之外,我还需要执行其他操作吗?请参阅此链接
int code = context.getPackageManager().checkPermission(
    android.Manifest.permission.WRITE_EXTERNAL_STORAGE, 
    context.getPackageName());
if (code == PackageManager.PERMISSION_GRANTED) {
   // todo create directory
}