如何解决如何使用devicepolicymanager为我的设备所有者应用程序在android 10中获取android.permission.ACCESS_BACKGROUND_LOCATION?
String packageName = context.getPackageName();
ComponentName adminComponentName = getComponentName(context);
boolean success = mDevicePolicyManager.setPermissionGrantState(
adminComponentName,packageName,Manifest.permission.ACCESS_BACKGROUND_LOCATION,DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
);
这是我用于授予ACCESS_BACKGROUND_LOCATION的代码,但我没有得到它。
解决方法
只需确保您已请求并授予了所有与位置相关的权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
mDevicePolicyManager.setPermissionGrantState(
adminComponentName,packageName,Manifest.permission.ACCESS_COARSE_LOCATION,DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
);
mDevicePolicyManager.setPermissionGrantState(
adminComponentName,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_BACKGROUND_LOCATION,DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
);
可能您不需要同时设置COARSE
和FINE
权限,但是我更希望它的风险较小,以防在其中一个Android版本中其使用方式有所不同。
设置中的权限ui:
- 只有
ACCESS_FINE_LOCATION
权限被转换为仅当用户打开应用程序用户界面时才授予对位置api的访问权限。 - 同时拥有
ACCESS_FINE_LOCATION
和ACCESS_BACKGROUND_LOCATION
会将其设置为已授予
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。