Android屏幕保持常亮的三种方法
16lz
2021-01-23
一、界面布局文件顶层添加keepScreenOn属性
android:keepScreenOn="true"
二、Window中设置flag
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
以上两种方法均不需要申请权限,也是Android官方推荐的做法。
三、持有WakeLock(已经不推荐的做法)
先申请权限:
通过PowerManager获取WakeLock后,在onResume以及onPause执行响应操作:
package com.example.note4xtest;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;import android.os.Bundle;import android.os.PowerManager;import android.util.DisplayMetrics;import android.util.Log;import android.view.WindowManager;public class MainActivity extends Activity { private static final String TAG = MainActivity.class.getSimpleName(); private PowerManager.WakeLock mWakeLock; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); if (powerManager != null) { mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG); } } @Override protected void onResume() { super.onResume(); if (mWakeLock != null) { mWakeLock.acquire(); } } @Override protected void onPause() { super.onPause(); if (mWakeLock != null) { mWakeLock.release(); } }}
WakeLock相关的FLAG:
-
PARTIAL_WAKE_LOCK:保持CPU运转,屏幕和键盘灯可能是关闭的
-
SCREEN_DIM_WAKE_LOCK:保持CPU运转,允许保持屏幕显示但可能是灰的(非高亮),允许键盘灯关闭
-
SCREEN_BRIGHT_WAKE_LOCK:保持CPU运转,允许保持屏幕高亮显示,允许关闭键盘灯
-
FULL_WAKE_LOCK:保持CPU运转,保持屏幕高亮显示,键盘灯也保持亮度
更多相关文章
- Android 设定横竖屏,屏幕旋转导致Activity重置问题
- Android 如何从屏幕底部向上滑出一个view
- Rexsee API介绍:Android屏幕锁定Keyguard
- Android : 隐藏软键盘
- Android屏幕元素层次结构
- 【Android】EditText实现搜索功能,把键盘回车键改为搜索;EditText
- Android EditText 禁止软键盘弹出