android权限申请执行过程

Posted on 2019-12-06 17:03  TongMeng  阅读(1113)  评论(0编辑  收藏  举报

弹出的授权对口窗口实际上是一个activity(隐式intent启动上图第二个方块里)(com.android.packageinstaller.permission.ui.GrantpermissionsActivity)

在PackageManageService处理grantRuntimePermission的时候,主要是通过PermissionState.grantRuntimePermission来进行处理(此方法会返回打开权限的结果),包括校验userid(app安装到系统就会分配一个uid),获取已授权的权限列表ID判断,再通过PermissionState的一个内部类

PermissionData.mGrant来控制权限的状态,通过Settings.writePermisson将权限列表授权结果写到文件,再通过ActivityThread将授权结果返回到Activiy的onActivityResult中。