博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android LockScreen
阅读量:4149 次
发布时间:2019-05-25

本文共 1921 字,大约阅读时间需要 6 分钟。

 
转自:  

 

大体的思路:系统启动成功后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文件中增加权限 

转载地址:http://rxvti.baihongyu.com/

你可能感兴趣的文章
看完老板就给加薪了!30岁以后搞Android已经没有前途?工作感悟
查看>>
绝了!这么香的技术还不快点学起来,大牛最佳总结
查看>>
网络优化软件apk,金九银十怎么从中小企业挤进一线大厂?我先收藏为敬
查看>>
美团安卓面试,这些年我所经历的所有面试,完整版开放下载
查看>>
美团安卓面试,阿里巴巴Android面试都问些什么?含小米、腾讯、阿里
查看>>
腾讯T2亲自讲解!阿里面试100%会问到的JVM,源码+原理+手写框架
查看>>
腾讯T3亲自讲解!字节大牛耗时八个月又一力作,大牛最佳总结
查看>>
你所不知道的Android原生开发的现状,手慢无
查看>>
做了3年Android还没看过OkHttp源码?小白也能看明白
查看>>
免费Android高级工程师学习资源,挥泪整理面经
查看>>
全世界都在问Android开发凉了吗?赶紧收藏!
查看>>
全世界都在问Android开发凉了吗?送大厂面经一份!
查看>>
全网最具深度的三次握手、四次挥手讲解,最全Android知识总结
查看>>
全网最具深度的三次握手、四次挥手讲解,看这一篇就够了!
查看>>
全网最具深度的三次握手、四次挥手讲解,知乎上转疯了!
查看>>
全靠这份Android知识点PDF大全,完整版开放下载
查看>>
关于Android程序员最近的状况,大厂内部资料
查看>>
从草根到百万年薪程序员的十年风雨之路,成功收获美团,小米安卓offer
查看>>
价值2000元的学习资源泄露,实战篇
查看>>
作为移动开发程序员,2021年Android开发者跳槽指南,实战篇
查看>>