一键锁屏双击锁屏

锁屏

方法一: 利用DevicePolicyManager执行屏幕锁定

流程:
1、获的DevicePolicyManager的实例;
2、申请设备管理权限(管理员权限);
3、调用DevicePolicyManager的API,完成息屏等其他需求得到操作

1. 获的DevicePolicyManager的实例

//获取设备管理服务

devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);  
componentName = new ComponentName(this, DeviceAdminReceiver.class); 

//像普通Broadcast类一样,该类也需要在 AndroidManifest.xml 文件中注册。

<!-- 设备管理 -->  
<receiver android:name="android.app.admin.DeviceAdminReceiver"  
    android:permission="android.permission.BIND_DEVICE_ADMIN">  
    <meta-data android:name="android.app.device_admin"  
        android:resource="@xml/lock_screen" />  
    <intent-filter>  
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />  
    </intent-filter>  
</receiver>

android:resource="@xml/lock_screen" 对应的就是权限说明文件。
本次仅需要强制锁定权限。 如下:

<?xml version="1.0" encoding="UTF-8"?>  
<device-admin>  
    <uses-policies>  
        <!-- 强行锁定 -->  
        <force-lock />  
    </uses-policies>  
</device-admin> 

2. 申请设备管理权限(管理员权限)

3. 调用DevicePolicyManager的API,完成锁屏等其他需求得到操作

// 判断是否获得管理员权限
boolean active = devicePolicyManager.isAdminActive(componentName);
if (active) {
    //已经获取管理员权限
    devicePolicyManager.lockNow();
} else {
    //启动系统activity让用户激活管理员权限
    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
    startActivityForResult(intent, 0);
}

备注:
1、DeviceAdminReceiver可以直接使用,没有其它需求不必新建类继承于它。记得注册就好,要加权限android:permission=“android.permission.BIND_DEVICE_ADMIN”
2、管理员权限需要申请通过后,调用锁屏API才能起作用;

方法二

如果是系统开发,可以发广播通知systemui去进行lock screen action。


参考:
https://blog.csdn.net/demonjsj/article/details/77372900
https://blog.csdn.net/black_bird_cn/article/details/79735794
https://blog.csdn.net/fengltxx/article/details/52334428

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值