android锁屏实现思路 博客分类: Android Android

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

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

然后我写了个BroadcastReceiver ,

class ScreenOffListener extends BroadcastReceiver {

		@Override
		public void onReceive(Context context, Intent intent) {
			if(LOGIT) Log.d(TAG, "screen off");
		}
    	
    }

然后在manifest 里面注册,

<receiver android:name=".ScreenOffListener">
        <intent-filter>
        	<action android:name="android.intent.action.SCREEN_OFF" />
        </intent-filter> 
</receiver>

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

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

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

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

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

@Override  public boolean dispatchKeyEvent(KeyEvent event) { 
	return true;
}

Endcall 没必要截获,因为要锁屏,必须要能关闭屏幕。而home 键,暂时没想到什么好办法。大家有什么办法,共同讨论讨论吧^-^。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏雨过天晴

转 树莓派无显示器安装系统

19120
来自专栏搜云库

HBase 深入浅出

HBase 深入浅出 HBase 在大数据生态圈中的位置 提到大数据的存储,大多数人首先联想到的是 Hadoop 和 Hadoop 中的 HDFS 模块。大家熟...

507100
来自专栏玩转全栈

Flutter封装阿里push

因为阿里的推送对小米和华为的离线推送兼容的比较好,因此,我使用flutter将阿里推送封装了一下,效过图,如下所示,这里是将进程杀死之后,小米设备收到的推送效果...

3.1K70
来自专栏解Bug之路

解Bug之路-记一次JVM堆外内存泄露Bug的查找 顶

JVM的堆外内存泄露的定位一直是个比较棘手的问题。此次的Bug查找从堆内内存的泄露反推出堆外内存,同时对物理内存的使用做了定量的分析,从而实锤了Bug的源头。笔...

10540
来自专栏非著名程序员

有关使用Universal-Image-Loader的遇到的问题和使用小技巧

? 今天我们来分析一下使用Universal-Image-Loader异步加载图片时遇到的一些问题和解决办法。今天咱们的公众号不分享高大上的原理分析和源码分析...

20680
来自专栏编程

年底总结一下Python WEB最好用的几个框架,让你有一个系统的了解

2017年就要过完了,我们来总结一下2017年最好用的17个Python Web框架 群内不定时分享干货,包括2017最新的python企业案例学习资料和零基础...

94880
来自专栏软件测试经验与教训

看图说话:持久式XSS(跨站)漏洞示例

读书与实践是获取知识的主要渠道,学习的权力只掌握在每个人自己手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!

27220
来自专栏小白课代表

软件分享 | 3DS MAX 2016安装教程

3D Studio Max,常简称为3d Max或3dsMAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件...

11320
来自专栏小狼的世界

HP-UX培训学习笔记

HP-UX操作系统全称为Hewlett Packard UniX,是惠普服务器上所有的操作系统。其发源自 AT & T SRV4系统,可以支持HP的PA-RIS...

18220
来自专栏gaoqin31

Linux下随机10字符病毒的清除

病毒表现: 网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CP...

35420

扫码关注云+社区

领取腾讯云代金券