3

在设备注册时,未通过 DevicePolicyManager 在 Android Q 中为设备所有者应用授予后台位置权限。

    coarseP = 
 mPolicyManager.setPermissionGrantState(mAdminComponent, 
  mContext.getPackageName(),
        Manifest.permission.ACCESS_COARSE_LOCATION, 
   DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
    fineP  = 
 mPolicyManager.setPermissionGrantState(mAdminComponent, 
  mContext.getPackageName(),
        Manifest.permission.ACCESS_FINE_LOCATION, 
  DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
    {
        backgroundP = 
  mPolicyManager.setPermissionGrantState(mAdminComponent, 
   mContext.getPackageName(),
            Manifest.permission.ACCESS_BACKGROUND_LOCATION, 
    DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
    }

所有 3 个 API 调用(coarseP、fineP、backgroundP)的结果都是 true,但只授予前台权限。

奇怪的是,当我在应用程序更新时在广播接收器中添加相同的代码时,在这种情况下会授予后台权限。

4

0 回答 0