一.使用
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyTAG");
wakeLock.acquire();
在Manifest中添加如下权限
WakeLock级别:
PARTIAL_WAKE_LOCK 保持CPU运转,屏幕和键盘背光可能关闭
SCREEN_DIM_WAKE_LOCK 保持CPU运转,保持屏幕常亮(亮度低),键盘背光可能关闭
SCREEN_BRIGHT_WAKE_LOCK 保持CPU运转,保持屏幕和键盘背光高亮
FULL_WAKE_LOCK 保持CPU运转,保持屏幕和键盘背光高亮(亮度最高)
ACQUIRE_CAUSES_WAKEUP 强制亮屏,针对一些必须通知用户的操作
ON_AFTER_RELEASE 当锁被释放时,保持亮屏一段时间(如果释放时屏幕没亮,则不会亮屏)
PROXIMITY_SCREEN_OFF_WAKE_LOCK 和接近传感器配合,当用户接近屏幕时黑屏,离开时亮屏(例如打电话),该API在API21后开放,以前被hide
保持屏幕长亮的WakeLock被建议弃用,系统推荐如下方法(当Activity或view可见时,屏幕才保持常亮):
在Activity.onCreate()中: getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
或在xml布局中: