Android tv版开发代码中如何取消屏保
2016-09-04 22:44
411 查看
1、注册一个BroadcastReceiver,用于接收ACTION_SCREEN_OFF事件。当接收到这个事件时,打开自定义的屏保画面。以下代码为了测试方便,放在MainActivity.java中,也可以根据需要,把代码放入service中。
2、完成这一步时,虽然屏幕关闭时,屏保画面被显示,但由于接收的是ACTION_SCREEN_OFF事件,所以屏幕已经变黑了,这个时候就需要强制点亮屏幕。
首先,在AndroidManifest.xml中加上permission 权限:
以下代码在ScreenSaverActivity.onCreate中
然后在屏保画面显示时,点亮屏幕。在ScreenSaverActivity.onResume中加入
为了能够在退出屏保时,能够让屏幕可以关闭,我们必须释放WakeLock.故在ScreenSaverActivity.onPause中加入
注意,必须放在onResume中,如放在别的地方。会导致程序无法再次进入屏保;
3. 完成第二步后,一般情况下大功告成。按键就可以返回程序。但有时候需要点击屏幕就返回系统。这个时候会发现,无论怎么样点击屏幕,系统都不会有响应,因为此时屏幕已经被锁定。因此,要实现这个功能,在打开屏保时,需要关键屏幕的锁定功能。
首先,在AndroidManifest.xml中加上permission 权限:
再次,把以下这段代码加入合适的地方。只要启动屏保时能够被调用到
在onCreate()方法中注册: registerReceiver(mMasterResetReciever, new IntentFilter(Intent.ACTION_SCREEN_OFF)); 在声明变量处: BroadcastReceiver mMasterResetReciever = new BroadcastReceiver(){ public void onReceive(Context context, Intent intent) { try { Intent i = new Intent(); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setClass(context, MainActivity.class); context.startActivity(i); } catch (Exception e) { Log.i("Output:", e.toString()); } } } ;
2、完成这一步时,虽然屏幕关闭时,屏保画面被显示,但由于接收的是ACTION_SCREEN_OFF事件,所以屏幕已经变黑了,这个时候就需要强制点亮屏幕。
首先,在AndroidManifest.xml中加上permission 权限:
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
以下代码在ScreenSaverActivity.onCreate中
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "SimpleTimer");
然后在屏保画面显示时,点亮屏幕。在ScreenSaverActivity.onResume中加入
mWakeLock.acquire();
为了能够在退出屏保时,能够让屏幕可以关闭,我们必须释放WakeLock.故在ScreenSaverActivity.onPause中加入
mWakeLock.acquire();
注意,必须放在onResume中,如放在别的地方。会导致程序无法再次进入屏保;
3. 完成第二步后,一般情况下大功告成。按键就可以返回程序。但有时候需要点击屏幕就返回系统。这个时候会发现,无论怎么样点击屏幕,系统都不会有响应,因为此时屏幕已经被锁定。因此,要实现这个功能,在打开屏保时,需要关键屏幕的锁定功能。
首先,在AndroidManifest.xml中加上permission 权限:
<uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"/>
再次,把以下这段代码加入合适的地方。只要启动屏保时能够被调用到
KeyguardManager mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock(TAG); mKeyguardLock.disableKeyguard();
相关文章推荐
- Cocos2d-x游戏开发之代码如何识别ios平台与android并分开处理
- 如何在Android开发中让你的代码更有效率
- Android团队开发中如何快速定位代码修改者等提交信息
- eclipse开发环境下,如何根据已有代码创建一个 Android 工程
- Android开发之AlertDialog警告提示框删除与取消 详解代码
- Android开发如何写出优雅的代码
- Android开发之如何手写代码进行页面布局
- Android 和 iOS 团队开发中如何快速定位代码修改者等提交信息
- [置顶] android开发之java代码中如何获取到当前时间。详情代码带注释。
- eclipse上android开发如何调用C++代码--初尝试
- android开发使用greenDAO如何自动生成代码
- android开发之java代码中如何获取到当前时间。详情代码带注释。
- [置顶] Android开发之AlertDialog警告提示框删除与取消 详解代码
- 如何在Android开发中让你的代码更有效率
- Android开发之如何手写代码进行页面布局
- 如何在Android开发中让你的代码更有效率
- 不会写代码,如何从零学习Android开发?
- 如何在Android开发中让你的代码更有效率
- Android开发之如何编写高效的Android代码?
- Cocos2d-x游戏开发之Mac下Android如何更新项目代码