我目前正在尝试使我的应用程序适应Android M的新权限模型。
我正在收集所需的所有权限,然后运行
Log.i("Permissions", "Requesting permissions: " + permissions);
requestPermissions(requiredPermissions.toArray(new String[requiredPermissions.size()]), requestCodeForPermissions);
requiredPermissions拥有我需要的权限android.permission.WRITE_EXTERNAL_STORAGE
。
该例程肯定已执行,因为我在logcat中有Log行:
08-07 12:52:46.469: I/Permissions(1674): Requesting permissions: android.permission.RECEIVE_BOOT_COMPLETED; android.permission.WRITE_EXTERNAL_STORAGE
但是权限对话框从不显示,更不用说onRequestPermissionsResult()了。
我究竟做错了什么?根据一些教程,我发现我什么都没错过。我只有用于测试的仿真器,没有物理设备。这是来自设置的关于屏幕: 图像
也许值得一提:如果我尝试从主屏幕打开已安装应用程序的概述,那么我只会得到launcher3 has exited
。我不确定是否可能相关。
有人知道为什么它不显示吗?
WRITE_EXTERNAL_STORAGE
不是dangerous
,不需要手动请求。在v2中发生了变化,在v2中它的工作方式与其他dangerous
权限类似CAMERA
。请注意,这RECEIVE_BOOT_COMPLETED
不是dangerous
许可;您不必在运行时请求它。