您的位置:首页 > 移动开发 > Android开发

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

2016-07-21 15:58 549 查看
中午休息的时候

党政办公室的小王同学说他自己下载的一个锁屏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………………………………………………………………………………………………………………………………………………….要炸掉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: