Permissions 如何使用devicepolicymanager为我的设备所有者应用程序获取android 10中的android.permission.ACCESS_BACKGROUND_位置?

Permissions 如何使用devicepolicymanager为我的设备所有者应用程序获取android 10中的android.permission.ACCESS_BACKGROUND_位置?,permissions,device-policy-manager,device-owner,Permissions,Device Policy Manager,Device Owner,这是我用来授予访问\u BACKGROUND\u LOCATION的代码,但我没有得到它。请确保您已请求并授予所有与位置相关的权限: String packageName = context.getPackageName(); ComponentName adminComponentName = getComponentName(context); boolean success = mDevicePolicyManager.setPermissionGrantState( admi

这是我用来授予访问\u BACKGROUND\u 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
);
也许你不需要同时设置
粗略
精细
权限,但我更希望它不那么滑稽,以防在android版本中受到不同的对待

设置中的权限ui:

  • 只有当用户打开应用程序ui时,才允许访问位置api
    权限被转换为允许访问位置api
  • 同时具有
    访问\u FINE\u位置
    访问\u BACKGROUND\u位置
    将其设置为已授予
    <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, packageName, 
    Manifest.permission.ACCESS_FINE_LOCATION,
    DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
);
mDevicePolicyManager.setPermissionGrantState(
    adminComponentName, packageName, 
    Manifest.permission.ACCESS_BACKGROUND_LOCATION,
    DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
);