Android一键锁屏代码
锁屏小Demo
由于手机关机键最近不好用了,所以就研究研究一键锁屏的小玩意。
首先创建一个工程
布局很简单,就一个button
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/c"><Button
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="锁屏"android:onClick="LockScreen"android:id="@+id/button"android:layout_centerVertical="true"android:layout_centerHorizontal="true" />
</RelativeLayout>
创建一个广播
广播只需继承DeviceAdminReceiver即可
public class AdminReceiver extends DeviceAdminReceiver {}
当然,别忘了在清单文件中注册
需要权限android:permission="android.permission.BIND_DEVICE_ADMIN"
<receiver
android:name=".AdminReceiver"android:permission="android.permission.BIND_DEVICE_ADMIN" ><meta-data
android:name="android.app.device_admin"android:resource="@xml/device_admin" /><intent-filter><action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /></intent-filter></receiver>
resource中的文件内容为
<device-admin xmlns:android="http://schemas.android.com/apk/res/android" ><uses-policies><limit-password /><watch-login /><reset-password /><force-lock /><wipe-data /><expire-password /><encrypted-storage /><disable-camera /></uses-policies></device-admin>
mainActivity中的代码实现
public void LockScreen(View v){new Thread(new Runnable() {@Overridepublic 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()方法中实现该功能
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActionBar actionBar = getSupportActionBar();actionBar.hide();setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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锁屏软件开发,Android一键锁屏开发全过程
一.项目简介: 项目:<Android 一键锁屏> 开发周期:4天 代码量:100行 二.项目流程: 三.项目代码 1.主程序代码: 1.private DevicePolicyManag ...
- 一键锁屏源代码c语言,Android一键锁屏开发全过程【源码】【附图】
一.项目简介: 项目:<Android 一键锁屏> 开发周期:4天 代码量:100行 ------------------------ 二.项目流程: 三.项目代码 1.主程序代码: Ja ...
- Android一键锁屏源码
APK下载 源程序下载 锁屏流程如下(参考于Android一键锁屏开发全过程[源码][附图]) 源码参考于一键锁屏 源码 一共有2个Java文件: 1 package com.example.onek ...
- Android一键锁屏的实现
1.首先创建类AdminReceiver继承DeviceAdminReceiver 该方式可以什么都不写~ 2.在AndroidManifest.xml中注册 <!-- 设备管理 --> ...
- Android一键锁屏的例子
先说点题外话,lenovo的手机质量真不是特叫人放心,不如他家的电脑.媳妇的手机电源键不怎么好用了,好在点亮屏幕可以使用侧边的音量键,但是锁屏就只能按电源键了,经常按了好几次都锁不上.于是,有了下面关 ...
- Android一键锁屏功能的实现
前不久换了部新手机,因为原来用的手机原装了一键锁屏的应用,用的还习惯,新手机上没有,就想着找一个装上,后来在网上搜了下一键锁屏的实现,自己拿来改了改,安装后感觉还可以.现在分享出来. 源码: 1. M ...
- Android一键锁屏程序实例
据笔者了解,所有的android手机都用电源键来手动锁屏.笔者使用手机时,一天之内手动锁屏的次数绝对不少于30次.如果都用电源键来进行的话,那么电源键的使用寿命一定不会长久. 虽然现在有很多的桌面软件 ...
- android 一键锁屏和清除手机数据
一键锁屏&清除数据_50 1.引入设备超级管理员(device admin) 2.看文档Develop-->API Guides--->Administration 如果你是一个企 ...
- 简单几步实现Android 一键锁屏,一键卸载程序,一键激活设备管理权限
2019独角兽企业重金招聘Python工程师标准>>> 以下为官方的文档(本人能力有限,尝试着翻译下,有错请指出) 不想看文档可以直接拉到后面,代码将在后面贴出 Developing ...
最新文章
- 新手探索NLP(七)——情感分析
- js实现webSocket客户端
- cookies的存值问题
- 聊聊身边的嵌入式,乘风破浪的比特币
- 云上自动化 vs 云上编排
- 测试所有类型的Class
- C语言实现sin函数的程序设计
- 奇妙“水仙花数”的判断
- 从明年1月开始,Oracle要对JDK8就要收费了,怎么办?
- 两向量点乘坐标运算_向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读...
- 联想笔记本如何重启计算机,联想电脑总是自动重启怎么处理
- SSM + Ajax
- VC中三种常见中文内码的转换方法
- 自定义mvc框架复习(crud)
- web下载文件夹的解决方案
- python权限_无法执行python脚本,权限被拒绝?
- 抛光树脂制备超纯水电阻率18.25M
- Python(arcpy) 批量计算流域面积
- 游戏开发人员推荐书单
- MySQL如何查询表中重复的数据