[英]Android: How to disallow user from changing the permissions on Marshmallow
[英]How to disallow user from changing permissions on a device owner app?
注意:默认情况下无法卸载该应用程序,因为它是具有设备管理员权限的设备所有者应用程序,并且默认情况下授予所有权限。 但是用户可以禁用这些权限。 无论如何,是否通过禁用权限更改切换按钮来禁止用户执行此操作? 我已经看到在基于三星KNOX的EMM应用程序中禁用了此功能。
这为我解决了:
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:该权限已授予该应用,并且用户无法通过UI管理该权限。
PERMISSION_GRANT_STATE_DENIED:拒绝该应用的权限,并且用户无法通过UI管理该权限。
PERMISSION_GRANT_STATE_DEFAULT:用户可以通过UI管理权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.