2024年6月3日发(作者:)
Android开发中屏保程序
简单的实现自定义锁屏,我想大部分人在很短的时间内都能实现,关键是要整合到第
三应用中要保证其能和大多数机型和Rom能兼容,也就是要解决上面写到的难点问题。
有时候,需要在程序中实现屏保相关的功能,如指定一段时间后,显示自定义的屏保
画面,网上查了很多资料,大多讲得不详细,或者说不完整。故对屏保相关的功能进行整
理。
1、注册一个BroadcastReceiver,用于接收ACTION_SCREEN_OFF事件。当接收
到这个事件时,打开自定义的屏保画面。以下代码为了测试方便,放在
中,也可以根据需要,把代码放入service中。
1. registerReceiver(mMasterResetReciever,newIntentFilter(_SCR
EEN_OFF));
2. BroadcastReceiver mMasterResetReciever=newBroadcastReceiver() {
3. publicvoidonReceive(Context context, Intent intent){
4. try{
5. Intent i =newIntent();
6. gs(_ACTIVITY_NEW_TASK);
7. ss(context, );
8. ctivity(i);
9. }catch(Exception e){
10. Log.i("Output:", ng());
11. }
12. }
13. };
2、完成这一步时,虽然屏幕关闭时,屏保画面被显示,但由于接收的是
ACTION_SCREEN_OFF事件,所以屏幕已经变黑了,这个时候就需要强制点亮屏幕。
首先,在中加上permission 权限:
1.
以下代码在te中
1. PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
2. mWakeLock = eLock(
3. E_CAUSES_WAKEUP |
4. _DIM_WAKE_LOCK |
5. _AFTER_RELEASE,"SimpleTimer");
然后在屏保画面显示时,点亮屏幕。在me中加入
1. e();
为了能够在退出屏保时,能够让屏幕可以关闭,我们必须释放WakeLock.故在
e中加入
1. e();
注意,必须放在onResume中,如放在别的地方。会导致程序无法再次进入屏保,具
体原因不详。由于手头只有一个手机,不能进行广泛的测试。
3. 完成第二步后,一般情况下大功告成。按键就可以返回程序。但有时候需要点击屏
幕就返回系统。这个时候会发现,无论怎么样点击屏幕,系统都不会有响应,因为此时屏
幕已经被锁定。因此,要实现这个功能,在打开屏保时,需要关键屏幕的锁定功能。
首先,在中加上permission 权限:
1. "/> 再次,把以下这段代码加入合适的地方。只要启动屏保时能够被调用到 1. KeyguardManager mKeyguardManager= (KeyguardManager)getSystemSe rvice(RD_SERVICE); 2. KeyguardLock mKeyguardLock= guardLock(T AG); 3. eKeyguard(); 当然也可以通过以下代码开启屏幕锁定功能。 1. leKeyguard();
发布评论