当在Android手机上需要实现自定义的锁屏,  往往在进入自定义的锁屏界面界面之前需要先解开屏幕锁, 以顺利的进入自定义锁屏界面 ,并能方便用户即时的做其他操作,下面用代码来实现这一功能:

1、点亮屏幕与解系统锁 
[java] view plaincopyprint? 
//light the screen    
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);     
WakeLock mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP   
                            | PowerManager.SCREEN_DIM_WAKE_LOCK, "SimpleTimer");     
mWakelock.acquire();     
mWakelock.release();   
                       
//unlock the screen    
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);     
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("");     
keyguardLock.disableKeyguard();

//light the screen 
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);   
WakeLock mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP 
                            | PowerManager.SCREEN_DIM_WAKE_LOCK, "SimpleTimer");   
mWakelock.acquire();   
mWakelock.release(); 
//www.sctarena.ocm                    
//unlock the screen 
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);   
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("");   
keyguardLock.disableKeyguard();  
2、添加权限 
上述代码要实现 自动屏幕解锁功能,还需要 在主配置文件AndroidManifest.xml中添加权限:

[html] view plaincopyprint? 
< uses-permission android:name="android.permission.WAKE_LOCK" />    
        
< uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

< uses-permission android:name="android.permission.WAKE_LOCK" />  
      
< uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 
3、具体实现自定义锁屏控制系统的大致思想 
(1)在主界面中设计一个锁屏控制按钮,决定是否进入 自定义的 锁屏 控制界面;

(2) 需要设计一个Service,在启动时即在 onCreate方法中注册监听系统屏幕锁屏的广播行为ACTION_SCREEN_OFF: "android.intent.action.SCREEN_OFF";

(3)在上述serice中定义一个广播接收器:如果监听到 ACTION_SCREEN_OFF,则进入到自定义的锁屏控制界面即启动自定义实现的Activity;

4、难点实现 
  (1)ACTION_SCREEN_OFF该消息需要动态注册,不能在XML文件中全局注册

(2)收到screen_off消息后,如何让自己定义的锁屏界面在系统锁屏界面之上

(3)点亮屏幕时,如何防止启动自定义锁屏界面时出现的闪屏现象

(4)在某些机型某些时候需要点亮两次屏幕

(5)解自定义锁屏时需要先解系统锁

(6)如何做到在解系统锁时在多机型多Rom下的兼容

(7)如何做到在解系统锁后不对耳机线控等行为或者其他相关行为产生影响

(8)如何在解系统锁后,要及时的能恢复系统锁

(9)有其他第三方锁屏系统存在时,如何保证自己的锁屏在其他所有锁屏之上。

(10)如何在锁屏界面屏蔽相关按键,特别是屏蔽Home键,特别是4.0系统之上

5、小结 
        简单的实现自定义锁屏,我想大部分人在很短的时间内都能实现,关键是要整合到第三应用中要保证其能和大多数机型和Rom能兼容,也就是要解决上面写到的难点问题。关于锁屏的这个项目,我已经完全实现,如果有什么疑问,可以咨询我,欢迎大家提出自己的意见和建议。

android培训,就选成都达内,最好的成都软件培训机构,如果你有“达内培训需要多少钱”、“达内培训怎么样”等问题,详情请咨询达内客服(http://www.sctarena.com),我们会给你详细的讲解。

Android实现自定义锁屏控制相关推荐

  1. android开发 自定义锁屏界面,插件锁屏桌面自定义 “安卓4.0”界面美化教程

    距离Android4.0系统的正式发布已经过去一段时间,除了最先搭载该系统的三星Galaxy Nexus.华为荣耀Android4.0商用版以及小米手机MIUI4.0等,多数用户目前仍然处于观望阶段. ...

  2. 浅谈 Android 自定义锁屏页的发车姿势

    作者:blowUp ,原文链接:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653577446&idx=2&sn ...

  3. 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...

  4. 浅谈Android自定义锁屏页的发车姿势

    一.为什么需要自定义锁屏页 锁屏作为一种黑白屏时代就存在的手机功能,至今仍发挥着巨大作用,特别是触屏时代的到来,锁屏的功用被发挥到了极致.多少人曾经在无聊的时候每隔几分钟划开锁屏再关上,孜孜不倦,其酸 ...

  5. 【腾讯Bugly干货分享】浅谈 Android 自定义锁屏页的发车姿势

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...

  6. Android 4.0 自定义锁屏

    在Android 4.0上做锁屏有一段时间了,期间改了很多bug,也按不同需求做了不少锁屏,其中比较满意的作品包括两个.一是,添加一个锁屏可以和原生锁屏进行切换:二是,自己写一个锁屏view去替换原生 ...

  7. Android QQ音乐/酷狗音乐锁屏控制实现原理,酷狗锁屏

    混乱的锁屏控制 Android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记 ...

  8. android app防止锁屏_如何控制Android不锁屏

    锁定屏幕对于移动终端来说是非常有必要的,但是对于机顶盒产品就没有这个必要了.所以本文介绍一下怎样让Android设备永不锁屏. Android系统的锁屏时间存放在Setting数据库中,字段为Sett ...

  9. android 九格锁屏,自定义 View 之实现九宫格锁屏效果

    Android 锁屏功能是我们最常用的.最经常接触的一个软件之一了吧,因为我个人也是使用的 Android 手机,虽然手机不怎么好,但是也有锁屏这个功能.虽然现在的手机都是指纹解锁,但是我的手机解锁功 ...

最新文章

  1. Laravel 7发行说明
  2. iOS架构-静态库.framework手动打包及脚本化打包(5)
  3. 关于Plos one 和 SR
  4. java包装器类_Java中的基本类型和包装类
  5. mysql引擎测试_MySQL MyISAM引擎和InnoDB引擎的性能测试
  6. oracle instr函数 收藏
  7. Golang 垃圾回收剖析
  8. 个人中心的html,个人中心.html
  9. java nio socket长连接_nio实现Socket长连接和心跳
  10. windows系统改装为linux系统_Linux怎么克隆系统?备份系统跟Windows系统有区别吗?...
  11. 7-42 行编辑器 (10 分)
  12. 用友政务知识管理平台_云创数字政务大数据平台,助力政务工作高效管理
  13. ubuntu mysql 内存满了_Ubuntu 下 mysql 卸载后重安装时遇到的问题
  14. 魔域私服怎么老服务器中断,魔域私服技术文章-服务器端比较正确的数据库解释文件...
  15. Retinex网络模型学习笔记
  16. CCFCSP非零段划分
  17. win10安装(U盘启动)
  18. DigiCert EV证书怎么样 DigiCert EV证书优势分析
  19. Guitar Pro 的木吉他音色改成电吉他音色的方法
  20. Java编程笔记16:深入容器

热门文章

  1. POCO C++ Libraries 学习
  2. 1024程序员节|历经一个月总结使用java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密的全套解决方案
  3. 安卓Android校园二手闲置物品交易系统App
  4. XDS100V3-DIY
  5. 1、RDA8910(4GCAT1)CSDK二次开发:环境搭建
  6. IDEA连接数据库踩过的坑之无法连接到数据表
  7. CSS实现可爱的BingDwenDwen
  8. 1131 神犇的悲惨一生
  9. bzoj4916 神犇和蒟蒻
  10. 2020-03-15