【发布时间】:2016-01-06 23:16:06
【问题描述】:
我已将uses-permission 包括WRITE_EXTERNAL_STORAGE,MOUNT_UNMOUNT_FILESYSTEMS,READ_EXTERNAL_STORAGE 添加到AndroidManifest.xml。
当我尝试在 Nexus5 (Android 6.0) 中运行我的应用程序时,它抛出了如下异常:
java.io.IOException: open failed: EACCES (Permission denied)
我尝试了另一部Android手机(Android 5.1),一切正常。代码如下:
private File createImageFile() throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(imageFileName, ".jpg", storageDir);
currentPhotoPath = image.getAbsolutePath();
return image;
}
Android 6.0 在权限上有区别吗?
【问题讨论】:
-
我认为您应该检查Android 6.0上添加的新权限功能并根据它更改您的代码..!!
-
我已阅读页面Manifest.permission,并没有发现什么特别之处。
-
@samuel40 : 我想你不知道新模型。这是旧的,所以请检查一下 -> android-developers.blogspot.in/2015/08/…
-
检查下面的答案并参考链接以实施新模型..!!
-
对我来说,在谷歌搜索并尝试了很多方法都没有成功。我打开 Settings 并发现 Android 6.0 在
Settings > Privacy and safety > App permissions > Storage部分阻止了我的应用程序权限。在 Storage Permissions 部分启用后,它就可以工作了。希望对其他人有所帮助
标签: java android android-6.0-marshmallow