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



在我的应用程序中,我有选项(复选框)以编程方式启用/禁用设备管理,当我禁用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();
        }
    }
}

应该可以了

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

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

API将始终显示一个对话框,用于确认设备管理的取消激活

尽管EDM api提供了一种方法,您可以静默地取消设备管理员的激活。所以用户看不到特定设备管理员的停用UI。但是 EDM api不容易获得,它们用于商业用途。

相关内容

  • 没有找到相关文章

最新更新