【Android设备管理】 利用DevicePolicyManager执行屏幕锁定

本文介绍了从Android 2.2开始提供的DevicePolicyManager类,它允许应用程序执行屏幕锁定和其他设备管理操作。通过DevicePolicyManager、DeviceAdminReceiver和DeviceAdminInfo类,开发者可以实现屏幕锁定功能。文章详细讲解了如何激活设备管理权限、执行屏幕锁定,并展示了相关的布局文件和代码实现。
摘要由CSDN通过智能技术生成
               

Android手机一般不用时,都会通过电源键来锁定屏幕同时关闭屏幕灯。

 

其实从API Level 8 (也就是Android 2.2) 开始, Android提供了DevicePolicyManager类, 可以让你的应用程序也能执行屏幕锁定等操作。

 

锁定效果:

  

 

 

下面我们来看一下具体如何操作。 要让自己的应用实现该屏幕锁定,主要需要用到以下几个类:

 

 

DevicePolicyManager

这是设备管理的主类。通过它可以实现屏幕锁定、屏幕亮度调节、出厂设置等功能。

 

 

DeviceAdminReceiver

 

 该类继承自 BroadcastReceiver 。 从源码可以看到,其实就是实现了一个OnReceive方法,该方法中根据不同的Action,执行相应的操作。 比如,如果激活成功,那么Action就是ACTION_DEVICE_ADMIN_ENABLED, 据此调用 onEnabled 方法。

 

系统源码:

    /**     * Intercept standard device administrator broadcasts.  Implementations     * should not override this method; it is better to implement the     * convenience callbacks for each action.     */    @Override    public void onReceive(Context context, Intent intent) {        String action = intent.getAction();        if (ACTION_PASSWORD_CHANGED.equals(action)) {            onPasswordChanged(context, intent);        } else if (ACTION_PASSWORD_FAILED.equals(action)) {            onPasswordFailed(context, intent);        } else if (ACTION_PASSWORD_SUCCEEDED.equals(action)) {            onPasswordSucceeded(context, intent);        } else if (ACTION_DEVICE_ADMIN_ENABLED.equals(action)) {            onEnabled(context, intent);        } else if (ACTION_DEVICE_ADMIN_DISABLE_REQUESTED.equals(action)) {            CharSequence res = onDisableRequested(context, intent);            if (res != null) {                Bundle extras = getResultExtras(true);                extras.putCharSequence(EXTRA_DISABLE_WARNING, res);            }        } else if (ACTION_DEVICE_ADMIN_DISABLED.equals(action)) {            onDisabled(context, intent);        }    } 

 

DeviceAdminInfo

定义设备管理类的 meta 信息。 什么意思呢? 就是定义可用的权限。define policy that this device admin can use。

 

 

比如 DeviceAdminReceiver.USES_POLICY_FORCE_LOCK , 这个就是本次要用的"强制锁定屏幕"的权限. 不过这些权限一般都直接通过XML文件来定义。 稍后你就会看到。

 

 

 


 

下面我们就来看下如何实现屏幕锁定。

注意,此处讲的屏幕锁定, 其实还是调用的系统的锁定方式。

在 "设置" - “位置与安全” - "更改屏幕锁定" 中可以设置锁定方式,一共有四种:

1. 无锁

2. 图案锁 (就是九宫图)

3. PIN锁

4. 密码锁

 

你的手机设置了哪个锁, 调用这个API时就会显示哪个锁 !

 

(锁定类型设置画面)

 

 

 

第一步: 写一个布局文件,该布局上有四个按钮, 分别对应 "激活设备管理权限" 、 "禁用设备管理权限"、"系统锁"、"自定义锁"。 

其中"自定义锁"在下一篇博文中讲。本次暂时不用。

 

布局文件如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center" android:id="@+id/rlTextDescBlock"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值