Android讓屏幕保持常亮,不熄屏的三種方法


轉載自https://blog.csdn.net/superxlcr/article/details/78822544

方法一:持有WakeLock
首先獲取WakeLock相關權限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

然后通過PowerManager獲取WakeLock后,在onResume以及onPause執行相應操作:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE);
        if (powerManager != null) {
            mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "WakeLock");
        }
    }
 
    @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 運轉,保持屏幕高亮顯示,鍵盤燈也保持亮度
PS:現在官方已經不推薦使用這種方式保持亮屏了,推薦改為以下兩種方式

方式二:在Window設置flag

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

這種方式不需要申請權限,也是官方推薦的做法

方式三:在界面布局xml中頂層添加屬性

可以再界面xml文件中的頂層布局添加屬性即可:
android:keepScreenOn="true"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM