android - 在设备注册时未通过 DevicePolicyManager 在 Android Q 中为设备所有者应用授予后台位置权限
问题描述
在设备注册时,未通过 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,但只授予前台权限。
奇怪的是,当我在应用程序更新时在广播接收器中添加相同的代码时,在这种情况下会授予后台权限。
解决方案
推荐阅读
- docker - 如何删除与特定 Dockerfile + docker-compose.yml 文件关联的所有 docker 容器和图像?
- spring - 带断路器的 Spring Cloud Gateway
- python-3.x - python PyGObject:如何将剪贴板保存为图像
- flutter - 更改 Cupertino 日期选择器的文本颜色
- python - 使用“粘性”格式化停止工作?
- amazon-web-services - awswrangler 和 boto3 的区别?
- node.js - npm run build 抛出错误“属性‘加载’受保护,只能在类‘AnimationState’及其子类中访问”
- amazon-web-services - AWS S3 中的 LIST 请求数量似乎高于预期。如何确定每个 LIST 请求的实际对象数?
- c# - 如何使用 UDP 协议从 BioMetrix 设备读取数据
- algorithm - 寻找一种“反向哈希”算法,该算法可以从一个小种子中产生一组很长的字符