引用:http://blog.csdn.net/kay_wyong/article/details/6631870

大体的思路:系统启动成功后SystemServer调用wm.systemReady()通知WindowManagerService,进而调用PhoneWindowManager,最终通过LockPatternKeyguardView显示解锁界面。当按Power键时,系统会像向外广播消息Intent.ACTION_SCREEN_OFF, 同样当在锁屏的情况下按Power键会向外广播Intent.ACTION_SCREEN_ON消息,捕捉这些消息是前提。但由于这些检测都需要实时的,所以需要创建一个Service 来负责检测这些。Now, here we go.

示例以及实现过程: 
第一步,创建Service, 创建了MyService.java文件用于创建Servicepublic class MyService extends Service { …} 
第二步,注册你需要监听的Broadcast Receiver,在这里我们需要检测Intent.ACTION_SCREEN_OFF 和Intent.ACTION_SCREEN_ON消息,

private void registerIntentReceivers() 

Log.d(TAG, "***registerIntentReceivers"); 
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); 
filter.addAction("android.intent.action.SCREEN_ON"); 
LockLisnter receiver = new LockLisnter(); //用于侦听 
registerReceiver(receiver, filter); 

在这里可能有个问题,为什么不写在AndroidManifest.xml中呢?这样不是更方便吗?Good question!

第三步, 在Broarcast Receiver中接收这些广播。 
public void onReceive(Context context, Intent paramIntent) 
{ if ("android.intent.action.SCREEN_OFF".equals(str)) 

Log.d(TAG,"***"+str); 
Log.d(TAG,"***Equal with SCREEN_OFF"); 
startMainActivity(); //如果是Screen_Off,启动自己的画面 


虽然在这里当按Power键的时候可以启动自己的Lock画面,但是在自己的启动之后仍然会被系统的覆盖掉。所以就需要把系统的干掉了。 
第四步,替换系统的LockScreen. 
KeyguardManager mKeyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock("Activity1"); 
mKeyguardLock.disableKeyguard(); 
其实系统的LockScreen的名字准确的说应该是Keyguard。 
在这里需要导入其他一些文件: 
import android.app.KeyguardManager; 
import android.app.KeyguardManager.KeyguardLock; 
有了这些资源虽然可以编译通过了,但是当调用到mKeyguardLock.disableKeyguard(); 
这句的时候就会崩溃,关键的一个原因就是权限的问题,因为要替换系统的 必须的有足够的权限,因此在Manifest.xml中添加: 
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

好了,到这里你就可以尽情的Customize系统的Lock Screen吧

总结:在替换系统的Lock Screen中大概用到了,Service ,Activity, broadcast Receiver,等知识点,在此不做详细讲解,再次强调,第一. 注册监听系统的有些Broadcast receiver,有时候写在Manifest.xml里是收不到的,第二,替换系统的东西,在很多时候需要增加权限,注意在Manifest文件中增加权限

android 锁屏相关推荐

  1. android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用

    微软又做了一款 Android 锁屏应用,质量还不错.如果你已经设置了锁屏,Picturesque可能让你再解锁一次你真的需要在锁屏就处理这么多任务吗? 微软又来给 Android 提供应用了,他们昨 ...

  2. [Android] Android 锁屏实现与总结 (一)

    实现锁屏的方式有多种(锁屏应用.悬浮窗.普通Activity伪造锁屏等等).但国内比较主流并且被广泛应用的Activity伪造锁屏方式. 实例演示图片如下: 系列文章链接如下: [Android] A ...

  3. Android 锁屏键和home键分开处理

    在做视频直播的时候遇到一个问题,就是Android锁屏状态下与home键状态下SurfaceView的生命周期发生的改变是不相同的. 因为home键与锁屏的时候activity都会走onPause() ...

  4. android锁屏应用系统排行榜,重塑安卓手机的20大锁屏应用程序

    1. AcDisplay 它是一个简单的设计android锁屏应用程序,以简约的方式处理通知.您可以直接从锁定屏幕访问应用程序.它具有使用传感器唤醒设备的活动模式. 兼容性 - Android 4.1 ...

  5. jQuery仿Android锁屏图案应用

    jQuery仿Android锁屏图案应用 在线演示 本地下载 posted @ 2018-12-03 14:08 栖息地 阅读(...) 评论(...) 编辑 收藏

  6. jQuery仿Android锁屏图案应用插件

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Android锁屏实现与总结

    Android锁屏实现与总结 Android锁屏实现与总结(网易云阅读) 一.自定义锁屏基本原理 二.重要步骤 1.广播注册 2.Activity设置 3.按键的屏蔽 4.滑屏解锁 5.Event b ...

  8. android 锁屏通知

    最近有个需求,说要弄个锁屏通知,通知倒是做过很多了,锁屏通知还真没弄过,经过一番研究,这里做个记录,方便搬砖. 话不多少,直接上效果图: 直接上代码: 安卓系统7以及以下: Notification. ...

  9. Android 锁屏,息屏情况下打开界面Activity类似微信视频通话接电话时弹出接电话的界面

    Android 锁屏,息屏情况下打开界面Activity,类似微信视频通话接电话时弹出接电话的界面 https://blog.csdn.net/yingtian648/article/details/ ...

  10. android锁屏机制探讨

    最近在搜狗输入法实习,研究了一下android系统的锁屏问题,记录一下,相互学习! android锁屏分系统自带的锁屏和第三方的锁屏. 1.系统自带的锁屏的修改需要改android源码,不同的手机厂商 ...

最新文章

  1. 数据预处理--噪声_为什么数据对您的业务很重要-以及如何处理数据
  2. 【组队学习】【26期】编程实践(Django网站开发)
  3. Shell-流程控制
  4. Windows消息机制要点
  5. 《2020总结-2021展望》
  6. XiaoKL学Python(C)__future__
  7. jzoj1293,P2933-气象牛(气象测量)【dp】
  8. 源码编译安装httpd服务
  9. fgets()逐行读取文件内容
  10. mysql myisam commit_mysql autocommit对myisam,innodb的性能影响
  11. 支付宝退款接口及反回参数
  12. Matlab 2010b再次打开安装问题
  13. 如何在微信公众号的开放平台上运维微信公众号
  14. iOS 应用测试总结
  15. 高考530计算机专业,高考530分以下,学生该先选择大学还是专业?高考名师给出分析...
  16. 大功率高精度恒流源的设计
  17. 什么是VGA、QVGA、CIF、QCIF。。。?
  18. apt-get update出现无法连接上 archive.ubuntukylin.com:10006
  19. Spark 内存管理内存空间分配_大数据培训
  20. 2013年期中总结 2013年9月10日20:17:49

热门文章

  1. linux mysql 统一字符编码
  2. 以elasticsearch-hadoop 向elasticsearch 导数,丢失数据的问题排查
  3. Part10 泛型程序设计与C++标准模板库 10.1泛型程序设计及STL的结构
  4. ScrollView的基本用法丶代理方法
  5. 最大连续子序列乘积(DP)
  6. Visual C++ MFC/ATL开发-高级篇(一)
  7. 移动端滚动穿透问题完美解决方案
  8. 解决方案:Error:Execution failed for task ‘:app:compileDebugAidl‘. > aidl is missing
  9. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)
  10. Centos7解决图形界面卡死问题