android lockscreen应用程序

  开始之前先说点别的,android 锁,这个让我纠结了一天多的事啊,因为我所用的是syban的手机,所以我以为android上的锁会跟它一样的呢,可以自己安装锁,然后就可以执行这个锁,而把原来的都Lock给替换掉呢,我就是为了实现 这样的功能 ,而纠结了很久,很久,昨天找了一天,都没有可以实现 这样的方法,头疼.....

再来说一下android的锁的机制啊,事实上android是这样的,当用户按下锁键时候,系统会发一个broadcast出来而Intent的内容是intent.action=Intent.ACTION_SCREEN_OFF,我们只收到这样的一个broadcast就可以了,而android是否可以让用户自己定义按哪个键来锁屏??这个在塞班上很容易的事,在android上好像没那么容易(目前还没知道怎么实现在不改源码的情况下)为什么呢?因为带有Intent.ACTION_SCREEN_OFF的intent只允许系统来广播(也可能是权限不够),作为应用层的开发人员来说,只能接收。所以我们只能用确定可以发出这个broadcast的键来执行锁屏。

  好像有点远了,再接着说为什么不能像NOKIA手机那样可以直接安装,android上的锁是一个broadcastreceiver啊,它是一个直接写在系统里的,不论我们怎么做,都拿不到这个receiver,并且也不能阻止它接收这个cast。哪怕我们在再写一个reviver还是不行,悲剧啊....我想改变它。。。于是我就纠结了一天....

如果非常自己写一个的话,只能先把android的Lock开关闭,然后再安装自己的应用程序,这多麻烦啊???就不能像syban一样吗?唉。。。?好像NOKIA里没有自己锁的界面,它就是把屏锁了,而没有什么界面,所以它可以直接安装第三方的锁.....我晕,我把这给忘记了,唉,悲剧......

        上面这种方法不好,而且到现在我都没有找到在哪里把android系统锁给关闭,真是笨啊(因为我没有android的手机)。今天下载了一个.apk的锁,界面做的很不错,十分的好。运行后我就发现人家那个就是安装后没做任何的操作就把系统的锁给屏蔽了,这是怎么做的?1、按了一下锁键,果然弹出的是应用程序的锁,而没有弹出系统的锁????什么情况?它是怎么做到把broadcast给截获的呢?而让系统收不到的呢?2、按下home键...???怎么让选择啊?是进入Launcher还是锁屏??不错,还增加了home锁的功能。3、关机重启,什么情况?系统锁又出来了?把这三个动作连起来想下,原来如此。。。

还不知道吗?往下看自定义应用程序锁的三步:

1、开机启动一个service用来监听所有键盘的事件,其它的设置不变,但当一按下锁键时,我们发出一个自定义的action去开启我们的锁,而不让它去执行系统的Intent.ACTION_SCREEN_OFF(利用此方法还可以自定义系统锁的开启键)

2、在弹出我们的自定义锁中我们只要控制(键盘、触屏、电量等我们想要的信息就可以了)

3、缺点:开机时无法阻止系统锁的出现。(因为系统锁是在framework中的,它在一开机就sent一个broadcast,这一点目前还不知道如何阻碍,未来希望有N人指点下)。

以上的做法并不完美,真正要做到完美还是自己定制,所以接下来我要写的就是android锁的定制....

posted @ 2010-12-27 19:26  IT圈儿  阅读(1761)  评论(1)    收藏  举报