在DeviceAdmin模式被禁用时设置身份验证?

时间:2018-06-19 11:28:25

标签: java android

我正在创建一个家长控制应用程序,在这里我想在使用之前将简单密码身份验证禁用为管理员模式。我正在使用DeviceAdminReceiver。一个有帮助的想法或示例代码。谢谢

1 个答案:

答案 0 :(得分:1)

不幸的是,没有直接的方法可以实现它。但是,有一种解决方法可以通过重写DeviceAdminReceiver的onDisableRequested()方法来实现

public class AdminReceiver extends DeviceAdminReceiver {
    @Override
    public CharSequence onDisableRequested(Context context, Intent intent) {
        DevicePolicyManager mDPM =(DevicePolicyManager)getApplicationContext().getSystemService("device_policy");
        mDPM.lockNow();
        // You can also display overlay screen
        return "Are you sure you want to disable the Device admin?";//OR whatever message you would like to display
    }

}

根据文档

  

当用户由于收到ACTION_DEVICE_ADMIN_DISABLE_REQUESTED而要求禁用管理员时调用,从而有机会向他们显示警告消息。消息作为结果返回;如果返回null(默认实现),则不会显示任何消息。

注意:

如果要显示覆盖屏幕,请注意禁用弹出窗口和禁用屏幕将具有较高的可见性优先级。任何尝试这样做都无济于事。一种解决方法是先锁定屏幕,然后再显示覆盖屏幕。