Android亮屏和熄屏控制實例詳解
本文實例講述了Android亮屏和熄屏控制實現(xiàn)方法。分享給大家供大家參考,具體如下:
一、概述
我們的Android應(yīng)用程序很多需要和亮屏和熄屏打交道,比如鬧鐘的時候,需要保持亮屏,之后又需要熄屏。那么今天,我們來分析下這方面的功能。
二. 系統(tǒng)服務(wù) PowerManager.java
顧名思義,PowerManager.java就是管理我們電源方面的功能的,當(dāng)然也包括我們屏幕的亮和熄滅。沒錯,我們的應(yīng)用程序就是通過這個系統(tǒng)服務(wù)來實現(xiàn)亮屏和熄屏的功能的。
1. 應(yīng)用程序獲取PowerManager服務(wù), 我們可以這樣書寫:
因為PowerManager是系統(tǒng)服務(wù),所以它的生命周期不是應(yīng)用程序所能控制的;應(yīng)用程序只能通過系統(tǒng),向系統(tǒng)請求獲取PowerManager服務(wù),然后系統(tǒng)把這個服務(wù)的應(yīng)用給我們。
2. goToSleep()方法, 這個方法可以強制我們的屏幕熄屏。我們可以這樣調(diào)用:
在上面拿到pm對象之后,這樣調(diào)用
pm.goToSleep(SystemClock.uptimeMillis());
3. setBacklightBrightness()方法,這個方法可以設(shè)置背光的亮度,從0-255
三. 定時熄滅屏幕
那么這里,還可以介紹一個控制屏幕的方法就是PowerManager.WakeLock
顧名思義,WakeLock這個東西就是亮屏控制,這里說的亮屏,它定義了幾種類型的亮屏。如下:
| 類型 | cpu | 屏幕 | 鍵盤 |
| PARTIAL_WAKE_LOCK | on | off | off |
| SCREEN_DIM_WAKE_LOCK | on | dim | off |
| SCREEN_BRIGHT_WAKE_LOCK | on | Bright | off |
| FULL_WAKE_LOCK | on | Bright | Bright |
由于它定義了這么多類型,每種類型可以指定相對應(yīng)的部件工作和不工作。那么我們就可以利用這些類型,從最細粒度來控制我們的屏幕,控制我們的電源,從而讓我們的電源工作時間盡可能的延長(大家都知道,智能手機的電池問題是一個硬傷, 每天一充電,有木有? 別人說用安卓手機的男人都是顧家好男人,因為他每天晚上都要回家充電。。^^).
好的,好的,閑話不扯,繼續(xù)。。。
怎么使用這個WakeLock呢?我們可以這樣寫:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG"); wakeLock.acquire(); //做我們的工作,在這個階段,我們的屏幕會持續(xù)點亮 //釋放鎖,屏幕熄滅。 wl.release();
那么這里我們也可以這樣使用,就是多少時間后熄滅屏幕
首先點亮屏幕
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG"); wakeLock.acquire();
然后
mTimeHandler.postDelayed(new Runnable(){
public void run(){
wakeLock.release();
}
}, 10*1000);
嗯,延遲10s后熄滅屏幕。。。。
那么,這里要注意的是acquire()和release()要成對調(diào)用哦!也就是說,你申請了亮屏,過段時間,你要是釋放它。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
適配AndroidQ拍照和讀取相冊圖片的實現(xiàn)方法
這篇文章主要介紹了適配AndroidQ拍照和讀取相冊圖片的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
這篇文章主要介紹了Android 的回調(diào)事件的相關(guān)資料,相當(dāng)?shù)脑敿?,有需要的小伙伴可以參考?/div> 2016-08-08
Android ListView中動態(tài)顯示和隱藏Header&Footer的方法
這篇文章主要介紹了Android ListView中動態(tài)顯示和隱藏Header&Footer的方法及footer的兩種正確使用方法,本文介紹的非常詳細,具有參考借鑒價值,對listview header footer相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2016-08-08
flutter 屏幕尺寸適配和字體大小適配的實現(xiàn)
這篇文章主要介紹了flutter 屏幕尺寸適配和字體大小適配的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
android 自定義view實現(xiàn)彩虹進度條功能
實現(xiàn)一個彩虹色進度條功能,不說明具體用途大家應(yīng)該能猜到,想找別人造的輪子,但是沒有合適的,所以決定自己實現(xiàn)一個,下面小編通過實例代碼給大家分享android 自定義view實現(xiàn)彩虹進度條功能,感興趣的朋友一起看看吧2024-06-06最新評論

