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

来源:互联网 发布:淘宝店铺简介大全 编辑:程序博客网 时间:2024/06/05 03:08

中午休息的时候
党政办公室的小王同学说他自己下载的一个锁屏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………………………………………………………………………………………………………………………………………………….要炸掉

0 0
原创粉丝点击