Android—一键锁屏(不闪那一下)

中午休息的时候
党政办公室的小王同学说他自己下载的一个锁屏App锁屏的时候总是要闪一下
然后 就试着做了一个
从android2.2开始API里面就包含了一个locknow方法
(android.app.admin.DevicePolicyManager包中)

先看两个类:
1.DevicePolicyManager
这个类是管理设备类 通过他我们可以控制锁屏 亮度调节 恢复出厂设置等一系列功能
2.DeviceAdminReceiver
这个类是继承自广播的一个类我们需要接收到信息然后去执行一些操作
然后主要逻辑就是

点击图标 先看是否激活了管理权限 如果没有激活就先激活 激活了之后就直接调用locknow来实现锁屏
核心代码:

public class MainActivity extends AppCompatActivity {
    private DevicePolicyManager policyManager;
    private ComponentName componentName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        componentName = new ComponentName(this, AdminReceiver.class);
        mylock();
        finish();

    }
    private void mylock(){

        boolean active = policyManager.isAdminActive(componentName);
        if(!active){//若无权限
            activeManage();//去获得权限
            policyManager.lockNow();//并锁屏
        }
        if (active) {
            policyManager.lockNow();//直接锁屏
        }
    }
    private void activeManage() {
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

        //权限列表
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);

        //描述(additional explanation)
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, null);

        startActivityForResult(intent, 0);
    }
}

github源码下载地址
解决闪屏那一下 主要就是我没有加载布局而且直接lock()完就finish()了
然后也可以修改theme变成透明和无标题的格式
不过我是结束才不会闪屏那一下。

今天好fan………………………………………………………………………………………………………………………………………………….要炸掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值