在android中以编程方式禁用设备管理员

时间:2013-06-10 07:23:21

标签: android device-admin

在我的应用程序中,我有选项(复选框)以编程方式启用/禁用设备管理员,当我禁用管理员并尝试启用它时它会起作用,但是当我禁用它时,它的作用是禁用设备管理员而不提示对于停用窗口要求停用。现在我需要的是以正确的方式做到这一点,我希望应用程序显示正确的屏幕要求停用设备管理员。我有以下从Android开发者网站获取的代码片段,

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if (isChecked) {
        // Activate device administration
        Intent intent = new Intent(
                DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdmin);
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                "Activate service to get access");
        startActivityForResult(intent, ACTIVATION_REQUEST);
    } else {
        try {
            devicePolicyManager.removeActiveAdmin(deviceAdmin);
            isAdminActive = false;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2 个答案:

答案 0 :(得分:4)

这应该有效

   ComponentName devAdminReceiver = new ComponentName(context, DeviceAdminReceiver.class);
   DevicePolicyManager dpm = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
   dpm.removeActiveAdmin(devAdminReceiver);

答案 1 :(得分:2)

AFIK不可能。这是用户权利。

API将始终显示一个对话框,用于确认Device Admin

的DE激活

尽管EDM API提供了一种可以对设备管理员进行静默DE激活的方法。因此用户无法看到特定设备管理员的停用UI。 EDM API不易获得,它们用于商业用途。

相关问题