【问题标题】:Disable device admin programatically in android在android中以编程方式禁用设备管理
【发布时间】:2013-06-05 19:19:37
【问题描述】:

在我的应用程序中,我有选项(复选框)以编程方式启用/禁用设备管理员,当我禁用管理员并尝试启用它时它可以工作,但是当我禁用它时,它的作用是禁用设备管理员而不提示用于停用窗口以要求停用。现在我需要以正确的方式进行操作,我希望应用程序显示正确的屏幕,要求停用设备管理员。我有以下代码 sn-p 取自 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();
        }
    }
}

【问题讨论】:

    标签: android device-admin


    【解决方案1】:

    这应该可行

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2010-10-06
        • 2011-08-09
        • 2013-11-23
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2023-04-05
        • 2014-07-02
        • 1970-01-01
        相关资源
        最近更新 更多