android解锁界面开发分分钟教你做锁屏软件-电
脑资料
想做个锁屏界面很久了,最近一周,历经千辛万苦,越过种种挫
折,终于完美实现了这一要求,在此将锁屏思路分享出来,
注意:这不是什么一键锁屏,是类似“go锁屏”那样的锁屏界
面。
准备:本程序共需要
两个activity:home、main。
一个rvice:myService
一个receiver:bootReceiver
一个layout:layout
其中home作为屏幕home键专用的activity,main则是主要的
展示锁屏界面的activity。
rvice用于接收锁屏/解锁广播,layout则是main所需要展示
的界面。
思路:
!注意:以下代码没有顺序联系,具体请参考源码!
1,给程序添加服务,当此服务接收到锁屏/解锁广播时,关闭系
统锁屏界面,打开自己的锁屏界面。
关键代码:
/onReceive中:
keyguardManager=(KeyguardManager)temServic
e(RD_SERVICE);
keyguardLock=guardLock("");
eKeyguard();//解锁系统锁屏
startActivity(toMainIntent);//跳转到主界面
注意,上面的代码需要注册权限:
另外,为了防止主界面被重复调用,我们在设置intent时还要
加上一些filter:
//设置myrvice中intent的filter
toMainIntent=newIntent(,);
gs(_ACTIVITY_NEW_TASK);//
这个flags表示如果已经有这个activity,则将已有的提到栈顶,
否则新建一个activity。
复制代码
//在manifest中讲主界面的启动模式更改为:singleTask,功能
和上面的“_ACTIVITY_NEW_TASK”类似
android:name=""
android:label="@string/app_name"
android:launchMode="singleTask">
复制代码
当然,我们还可以在onDestroy中设置服务重启,以保证此服务
一直在后台运行
复制代码
@Override
publicvoidonDestroy(){
roy();
unregisterReceiver(screenReceiver);
//重启此服务
startActivity(newIntent(,));
}
复制代码
将一些其他的事项,如注册服务、在主界面中启动服务等设置完
成后,我们可以run一遍了~
如果没出错,那么解锁后首先打开的将是我们的锁屏界面,
2,实现了锁屏,但是还有一个问题,当按返回键或者home键的
时候,我们的界面就轻易被KO了。别担心,咱们一一屏蔽他们。
首先,拿返回键开刀:只需要在主界面中添加如下代码即可:
复制代码
@Override
publicbooleanonKeyDown(intkeyCode,KeyEventevent){
switch(keyCode){
E_BACK:
returntrue;
}
own(keyCode,event);
}
复制代码
这种办法的思路是:把自己的程序设置为系统主屏幕!这样,本
来按home键是要转到主屏幕的,设置好后,按home键则直接跳转
到我们的界面里来了!
好了,让我们新建一个activity,命名为“home”,用来抢夺
home键。然后在manifest中设置如下:
复制代码
复制代码
这样,当按home键的时候,如果是在main界面按的,系统不做
反应。如果是在其他时候按下home键,就会跳转到这个activity
中来。
(首次运行时,会让你选择按home键跳转到“主屏幕”或者
“test1(咱们自己写的程序的appName)”)
也就是说,我们已经实现了锁屏界面对home的屏蔽。如果是在
非锁屏状态下按home,就会调用home界面。我们只需在home界面
里如此设置即可:
onCreate(){
跳转到系统主屏幕;//具体代码见下文
finish();//结束这个activity
本文发布于:2023-03-04 01:46:05,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1677865565129767.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:电脑一键锁屏.doc
本文 PDF 下载地址:电脑一键锁屏.pdf
留言与评论(共有 0 条评论) |