如何禁止用户更改设备所有者应用的权限?

时间:2017-10-23 11:47:22

标签: android

注意:默认情况下无法卸载应用程序,因为它是具有设备管理员权限的设备所有者应用程序,默认情况下会授予所有权限。但是用户可以禁用这些权限。无论如何通过灰显权限更改切换按钮来禁止用户执行此操作?我已经看到在基于三星KNOX的EMM应用程序中禁用此功能。

1 个答案:

答案 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:用户可以通过用户界面管理权限。