锁屏小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一键锁屏代码相关推荐

  1. android锁屏软件开发,Android一键锁屏开发全过程

    一.项目简介: 项目:<Android 一键锁屏> 开发周期:4天 代码量:100行 二.项目流程: 三.项目代码 1.主程序代码: 1.private DevicePolicyManag ...

  2. 一键锁屏源代码c语言,Android一键锁屏开发全过程【源码】【附图】

    一.项目简介: 项目:<Android 一键锁屏> 开发周期:4天 代码量:100行 ------------------------ 二.项目流程: 三.项目代码 1.主程序代码: Ja ...

  3. Android一键锁屏源码

    APK下载 源程序下载 锁屏流程如下(参考于Android一键锁屏开发全过程[源码][附图]) 源码参考于一键锁屏 源码 一共有2个Java文件: 1 package com.example.onek ...

  4. Android一键锁屏的实现

    1.首先创建类AdminReceiver继承DeviceAdminReceiver 该方式可以什么都不写~ 2.在AndroidManifest.xml中注册 <!-- 设备管理 --> ...

  5. Android一键锁屏的例子

    先说点题外话,lenovo的手机质量真不是特叫人放心,不如他家的电脑.媳妇的手机电源键不怎么好用了,好在点亮屏幕可以使用侧边的音量键,但是锁屏就只能按电源键了,经常按了好几次都锁不上.于是,有了下面关 ...

  6. Android一键锁屏功能的实现

    前不久换了部新手机,因为原来用的手机原装了一键锁屏的应用,用的还习惯,新手机上没有,就想着找一个装上,后来在网上搜了下一键锁屏的实现,自己拿来改了改,安装后感觉还可以.现在分享出来. 源码: 1. M ...

  7. Android一键锁屏程序实例

    据笔者了解,所有的android手机都用电源键来手动锁屏.笔者使用手机时,一天之内手动锁屏的次数绝对不少于30次.如果都用电源键来进行的话,那么电源键的使用寿命一定不会长久. 虽然现在有很多的桌面软件 ...

  8. android 一键锁屏和清除手机数据

    一键锁屏&清除数据_50 1.引入设备超级管理员(device admin) 2.看文档Develop-->API Guides--->Administration 如果你是一个企 ...

  9. 简单几步实现Android 一键锁屏,一键卸载程序,一键激活设备管理权限

    2019独角兽企业重金招聘Python工程师标准>>> 以下为官方的文档(本人能力有限,尝试着翻译下,有错请指出) 不想看文档可以直接拉到后面,代码将在后面贴出 Developing ...

最新文章

  1. 新手探索NLP(七)——情感分析
  2. js实现webSocket客户端
  3. cookies的存值问题
  4. 聊聊身边的嵌入式,乘风破浪的比特币
  5. 云上自动化 vs 云上编排
  6. 测试所有类型的Class
  7. C语言实现sin函数的程序设计
  8. 奇妙“水仙花数”的判断
  9. 从明年1月开始,Oracle要对JDK8就要收费了,怎么办?
  10. 两向量点乘坐标运算_向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读...
  11. 联想笔记本如何重启计算机,联想电脑总是自动重启怎么处理
  12. SSM + Ajax
  13. VC中三种常见中文内码的转换方法
  14. 自定义mvc框架复习(crud)
  15. web下载文件夹的解决方案
  16. python权限_无法执行python脚本,权限被拒绝?
  17. 抛光树脂制备超纯水电阻率18.25M
  18. Python(arcpy) 批量计算流域面积
  19. 游戏开发人员推荐书单
  20. MySQL如何查询表中重复的数据

热门文章

  1. 如何修改C盘用户目录下的用户名
  2. 免越狱,iOS12系统也能使用联通volte,干就完了/越狱工具更新
  3. “智能对话机器人”离“智能”还有多远?
  4. AI如此多娇,引得猛男竞折腰
  5. 人在旅途——》张家界之旅:20190422
  6. Vue之引用第三方JS插件,CKPlayer使用
  7. python用于数学教学_Python基础
  8. 开源OLAP系统的比较:ClickHouse、Druid和Pinot
  9. 100000 行级别数据的 Excel 导入优化之路
  10. 找对象必须问的几个问题