Android M使用permission_groups请求权限

Android M Preview文档向我们展示了如何使用新的权限模型来检查和请求权限。 在下面的图表中,它向我们展示了一组权限组及其关联的权限。

当我尝试在第一次启动时使用permission_group (即Manifest.permission_group.CAMERAcheckSelfPermission permission_group时,可以预料我会得到PackageManager.PERMISSION_DENIED

然后尝试requestPermissions为同一个permission_group ,我没有得到任何types的对话框popup。 'onRequestPermissionsResult'立即返回-1

当我尝试与Manifest.permission.Camera相同的序列 – 事情似乎正常工作。 但是对于我制作的一个简单的应用程序,我需要用audio录制video,并请求两个单独的权限, CAMERAMICROPHONE (又名RECORD_AUDIO )似乎是不好的devise。

问题是: checkSelfPermissionrequestPermission应该与Manifest.permission.*Manifest.permission_group.*一起工作,但是由于它不会显示请求,所以我应该提交一个错误。 还是这个有意的devise?

*注意 – 我明白我可以自己创build一个拥有多个权限的requestPermissions(String[], int)string数组,但是id仍然有很多if语句来检查我需要的权限组合,并请求它们作为一个组,当我只需要请求一个permission_group

Related of "Android M使用permission_groups请求权限"

当我尝试在第一次启动时使用permission_group(即Manifest.permission_group.CAMERA)检查自身权限时,可以预料我会得到PackageManager.PERMISSION_DENIED。

这是因为checkSelfPermission()检查权限,而不是权限组。

然后尝试requestPermissions为同一个permission_group,我没有得到任何types的对话框popup。 'onRequestPermissionsResult'立即返回-1。

这是因为requestPermissions()与权限而不是权限组一起工作。

是checkSelfPermission和requestPermission应该与Manifest.permission一起使用。*

是。

和Manifest.permission_group。*

没有。

还是这个有意的devise?

据推测,是的。 至less在checkSelfPermission() ,它覆盖了其他先前存在的API方法,这些方法可以追溯到API级别1,并且处理权限,而不是权限组。

当我只需要请求一个permission_group

您正在对Android的未来做出假设,这可能不准确。 现在,M之前的权限组并不是特别重要,权限就是这个问题。 在M中,许可团体的重要性在上升,因为这正是M使用它向最终用户介绍用户可以控制的内容。 不过,之后的Android版本可能会提供更好的粒度,无论是个人用户还是企业通过策略,这可能会回到权限。

API表明Google正在为这些举措敞开大门。 实际上,权限组的内容是UX的决定,而不是技术上的决定。