原文地址:Android点亮屏幕
作者:1024837348
本文仅在Android4.0测试过,其余平台未知是否可行。
最近在写一个应用,想实现类似闹钟提醒界面,在网上找了关于Android屏幕点亮的文章,网上关于点亮的代码如下:
PowerManager pm=(PowerManager) getSystemService(Context.POWER_SERVICE); //获取电源管理器对象 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "bright"); //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag wl.acquire(); //点亮屏幕KeyguardManager km= (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); //得到键盘锁管理器对象 KeyguardLock kl = km.newKeyguardLock("unLock"); //参数是LogCat里用的Tag kl.disableKeyguard(); //解锁 kl.reenableKeyguard(); //重新启用自动加锁 wl.release(); //释放
PowerManager需要的权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
但是把这些代码打进去后发现Android已经不推荐用KeyguardLock,Android api推荐调用Activity的addFlags方法设置WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED属性,这种方法好处有:不需要其他权限,二,当你应用程序所有Activity finish后,不需要重新启动自动加锁。
最后Android 点亮屏幕最重要一点:PowerManager.WakeLock使用完成后,必须release()。