android锁屏实现思路

以前就想过要实现一个锁屏程序,一直没有动手,今天尝试了一下。

首先,得听到系统的屏幕关闭的广播,这个广播是什么呢?不知道啊。那怎么办?搜呗!搜索,可以搜到,不过我找到一个可以知道系统所有广播的办法:我的  sdk  1.5   的,进入sdk   主目录,然后进入platforms/android-1.5/data   目录,里面有  activity_actions.txtbroadcast_actions.txt   等文本文档,activity_actions.txt   里面是系 统的所有action  broadcast_actions   里面是系统的所有广播。从这里面我们可以找到屏幕关闭的广 播:android.intent.action.SCREEN_OFF  

 

然后我写了个BroadcastReceiver  

Java代码     收藏代码
  1. class  ScreenOffListener  extends  BroadcastReceiver {  
  2.   
  3.         @Override   
  4.         public   void  onReceive(Context context, Intent intent) {  
  5.             if (LOGIT) Log.d(TAG,  "screen off" );  
  6.         }  
  7.           
  8.     }  

 

然后在manifest   里面注册,

Xml代码     收藏代码
  1. < receiver   android:name = ".ScreenOffListener" >   
  2.         < intent-filter >   
  3.             < action   android:name = "android.intent.action.SCREEN_OFF"   />   
  4.         </ intent-filter >    
  5. </ receiver >   

 

然后信心满满的在我的G2   上测试。可是,广播怎么都收不到。郁闷了。

换个方法!写一个activity   ,在里面注册这个  BroadcastReceiver   。然后再次测试,结果。。。嘿嘿,成功收到广播。

看来在全局接收screenoff   广播是不行的,只能 程序里面注册监听,原因暂时不管了,有时间再研究。

继续这个话题。在activity   里面注册BroadcastReceiver   ,如果这个activity   切换到后台了,也就是stop   了,BroadcastReceiver   必须得unregister   ,然后就听不到screenoff   广播了。怎么办呢?要达到这个目的,只能使用Service   了。然后我写了一个Service   ,在里面注册BroadcastReceiver   ,监听screenoff   ,嘿嘿,ok   了。然后这个服务一被关闭,马上再启动,这样就可以一直听到广播了。

广播的问题解决了,接下来就是锁屏主程序了。Activity   可以截获大部分的键,只有endcall  home   键截获不了。截获键盘的代码:

Java代码     收藏代码
  1. @Override    public   boolean  dispatchKeyEvent(KeyEvent event) {   
  2.     return   true ;  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值