Android一键锁屏代码
锁屏小Demo 由于手机关机键最近不好用了,所以就研究研究一键锁屏的小玩意。
首先创建一个工程
布局很简单,就一个button
创建一个广播
广播只需继承DeviceAdminReceiver即可
public class AdminReceiver extends DeviceAdminReceiver {
}
当然,别忘了在清单文件中注册
需要权限android:permission="android.permission.BIND_DEVICE_ADMIN"
resource中的文件内容为
mainActivity中的代码实现
public void LockScreen(View v){
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(1000);
dpm = (DevicePolicyManager)
getSystemService(Context.DEVICE_POLICY_SERVICE);
componentName = new ComponentName(getApplicationContext(),
AdminReceiver.class);
if (dpm.isAdminActive(componentName)) {//判断是否有权限(激活了设备管理器)
dpm.lockNow();
// 直接锁屏
//杀死当前应用
android.os.Process.killProcess(android.os.Process.myPid());
}else{
activeManager();
//激活设备管理器获取权限
}
}
}).start();
}private void activeManager() {
//使用隐式意图调用系统方法来激活指定的设备管理器
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "一键锁屏");
startActivity(intent);
}
为了避免每次进了应用都要点击Button按钮才可实现功能,所以可以直接在onCreate()方法中实现该功能
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(1000);
dpm = (DevicePolicyManager)
getSystemService(Context.DEVICE_POLICY_SERVICE);
componentName = new ComponentName(getApplicationContext(),
AdminReceiver.class);
if (dpm.isAdminActive(componentName)) {//判断是否有权限(激活了设备管理器)
dpm.lockNow();
// 直接锁屏
//杀死当前应用
android.os.Process.killProcess(android.os.Process.myPid());
}else{
activeManager();
//激活设备管理器获取权限
}
}
}).start();
}
由于每次点击桌面图标会需要一点时间去处理逻辑功能,会产生闪屏效果,所以我选择在线程中睡1s钟。
当然,可以自己设置一个好看点的背景图片,就Ok了。如有不足之处,请指出,谢谢!
源码链接
【Android一键锁屏代码】欢迎关注公众号
文章图片
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)
- Android|Android install 多个设备时指定设备