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为Android6.0(Marshmallow)添加了新的权限模型。
http://www.captechconsulting.com/blogs/runtime-permissions-best-practices-and-how-to-gracefully-handle-permission-removement
因此必须检查运行时权限
:
它不需要完全支持,直到您选择在应用程序中以23版本为目标。如果您的目标是版本22或更低,那么您的应用程序将在安装时请求所有权限,就像它在运行marshmallow以下操作系统的任何设备上一样。
此信息取自此处:
请检查如何从此链接实现:
并且在清单中权限集是正确的
更新 结果发现我调用open和close FileOutputStream的频率太高了,这会在某个时候抛出FileNotFoundException。听起来更像是线程问题。
java.io.FileNotFoundException:/Storage/Emulated/0/WhatsApp/Media/WhatsApp Documents/api.txt:open失败:EACCES(拒绝权限)
在其他设备中没有发生这种情况,我测试的设备:、、
问题内容: 我已经加入包括。 当我尝试在Nexus5(Android 6.0)中运行我的应用程序时,它引发了如下异常: 然后我尝试了另一部Android手机(Android 5.1),一切正常。代码如下: Android 6.0在权限方面有区别吗? 问题答案: 在Android 6(Marshmallow)中,即使用户在安装时接受了你的所有权限,他们仍可以稍后决定从你手中夺走其中一些权限。 快速解
在三星T230(Android 4.4.2)上,它适用于以下两种情况 我已经试过很多这样的设备。T230是一个示例 在Hometech平板电脑(Android 5.1.1)上无法运行。 我得到一个错误如下: 打开失败:EACCES(权限被拒绝) 当前AndroidManifest。xml 我尝试了很多不同的方法。。。requestPermissions()和android:maxSdkVersio