【问题标题】:How to disallow user from changing permissions on a device owner app?如何禁止用户更改设备所有者应用程序的权限?
【发布时间】:2017-10-23 11:47:22
【问题描述】:

注意:该应用程序默认无法卸载,因为它是具有设备管理员权限的设备所有者应用程序,并且默认授予所有权限。但是用户可以禁用这些权限。有没有办法通过使权限更改切换按钮变灰来禁止用户这样做?我在基于 Samsung KNOX 的 EMM 应用程序中看到了此功能。

【问题讨论】:

  • 好吧,也许系统应用可以将自己的权限改回来?
  • 是的,这正是我想要禁用的。正如我所说,我已经在其他应用程序中看到了它。

标签: android


【解决方案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 : 权限已授予应用,用户无法通过 UI 管理权限。

PERMISSION_GRANT_STATE_DENIED : 权限被应用拒绝,用户无法通过 UI 管理权限。

PERMISSION_GRANT_STATE_DEFAULT : 用户可以通过 UI 管理权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 2018-08-06
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    相关资源
    最近更新 更多