注意:默认情况下无法卸载应用程序,因为它是具有设备管理员权限的设备所有者应用程序,默认情况下会授予所有权限。但是用户可以禁用这些权限。无论如何通过灰显权限更改切换按钮来禁止用户执行此操作?我已经看到在基于三星KNOX的EMM应用程序中禁用此功能。
答案 0 :(得分:1)
这解决了我:
targetSdkVersion应为23或更高,以便工作。
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName mDeviceAdmin = new ComponentName(this, AdminReceiver.class);
try {
String[] permissions = context.getPackageManager().getPackageInfo(context.getPackageName(),PackageManager.GET_PERMISSIONS).requestedPermissions;
for (String permission : permissions) {
boolean success = dpm.setPermissionGrantState(mDeviceAdmin,
getPackageName(), permission, PERMISSION_GRANT_STATE_GRANTED);
if (!success) {
Log.e(TAG, "Failed to auto grant permission to self: " + permission);
}
}
} catch (Exception e) {
e.printStackTrace();
}
PERMISSION_GRANT_STATE_GRANTED:授予应用程序权限,用户无法通过用户界面管理权限。
PERMISSION_GRANT_STATE_DENIED:拒绝该应用的权限,用户无法通过用户界面管理权限。
PERMISSION_GRANT_STATE_DEFAULT:用户可以通过用户界面管理权限。