android两种常亮的方式

LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
清除常亮
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);




  PowerManager.WakeLock
       Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。可以通过Timer进行定时控制。
       //加锁:锁屏3分钟
      
public void acquireWakeLock3minute(Context context) {
releaseWakeLock();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, TAG);        mWakeLock.acquire();
Timer task = new Timer();
task.schedule(new TimerTask() {
@Override
public void run() {
releaseWakeLock();
}
}, 3000 * 60);
}
//解锁
public static void releaseWakeLock() {
if (mWakeLock != null && mWakeLock.isHeld()) {
            mWakeLock.release();
            mLogger.d("-------releaseWakeLock time= "+ System.currentTimeMillis());
        }
}

         acquireWakeLock()方法中获取了 SCREEN_BRIGHT_WAKE_LOCK锁,该锁使 CPU 保持运转,屏幕保持亮度,允许关闭键盘灯。
       这个函数在Activity的 onResume中被调用。releaseWakeLock()方法则是释放该锁。它Activity的onPause中被调用。利用 Activiy的生命周期,巧妙的让 acquire()和release()成对出现。

       PowerManager和WakeLock的操作步骤
       1、PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。
       2、然后通过PowerManager的newWakeLock((int flags, String tag)来生成WakeLock实例。int Flags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。
       3、获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。

     关于int flags
     各种锁的类型对CPU 、屏幕、键盘的影响:
     PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
     SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
     SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键灯
     FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

     权限获取
      要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
     <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
     你可能还需要
     <uses-permission android:name="android.permission.DEVICE_POWER"></uses-permission>
     另外WakeLock的设置是 Activiy 级别的,不是针对整个Application应用的。



猜你喜欢

转载自asdf314159265.iteye.com/blog/1769637