问题:客户反馈他们应用第一次打开申请相机权限,应用退出,需要第二次打开。
分析:先写一个简单的应用测试下
测试结果:
应用在申请完相机权限之后确实会被系统杀掉,日志中打了如下日志
Killing 8269:com.example.android.camera2basic/u0a85 (adj 100): permission grant or revoke changed gids(偷懒往下下载了一个相机的demo)
研究代码发现如下的逻辑:
final int result = permissionsState.grantRuntimePermission(bp, userId);
switch (result) {
case PermissionsState.PERMISSION_OPERATION_FAILURE: {
return;
}
case PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED: {
final int appId = UserHandle.getAppId(pkg.applicationInfo.uid);
mHandler.post(new Runnable() {
@Override
public void run() {
killUid(appId, userId, KILL_APP_REASON_GIDS_CHA