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