Android亮屏和熄屏控制實(shí)例詳解
本文實(shí)例講述了Android亮屏和熄屏控制實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
一、概述
我們的Android應(yīng)用程序很多需要和亮屏和熄屏打交道,比如鬧鐘的時(shí)候,需要保持亮屏,之后又需要熄屏。那么今天,我們來(lái)分析下這方面的功能。
二. 系統(tǒng)服務(wù) PowerManager.java
顧名思義,PowerManager.java就是管理我們電源方面的功能的,當(dāng)然也包括我們屏幕的亮和熄滅。沒(méi)錯(cuò),我們的應(yīng)用程序就是通過(guò)這個(gè)系統(tǒng)服務(wù)來(lái)實(shí)現(xiàn)亮屏和熄屏的功能的。
1. 應(yīng)用程序獲取PowerManager服務(wù), 我們可以這樣書寫:
因?yàn)镻owerManager是系統(tǒng)服務(wù),所以它的生命周期不是應(yīng)用程序所能控制的;應(yīng)用程序只能通過(guò)系統(tǒng),向系統(tǒng)請(qǐng)求獲取PowerManager服務(wù),然后系統(tǒng)把這個(gè)服務(wù)的應(yīng)用給我們。
2. goToSleep()方法, 這個(gè)方法可以強(qiáng)制我們的屏幕熄屏。我們可以這樣調(diào)用:
在上面拿到pm對(duì)象之后,這樣調(diào)用
pm.goToSleep(SystemClock.uptimeMillis());
3. setBacklightBrightness()方法,這個(gè)方法可以設(shè)置背光的亮度,從0-255
三. 定時(shí)熄滅屏幕
那么這里,還可以介紹一個(gè)控制屏幕的方法就是PowerManager.WakeLock
顧名思義,WakeLock這個(gè)東西就是亮屏控制,這里說(shuō)的亮屏,它定義了幾種類型的亮屏。如下:
| 類型 | 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 |
由于它定義了這么多類型,每種類型可以指定相對(duì)應(yīng)的部件工作和不工作。那么我們就可以利用這些類型,從最細(xì)粒度來(lái)控制我們的屏幕,控制我們的電源,從而讓我們的電源工作時(shí)間盡可能的延長(zhǎng)(大家都知道,智能手機(jī)的電池問(wèn)題是一個(gè)硬傷, 每天一充電,有木有? 別人說(shuō)用安卓手機(jī)的男人都是顧家好男人,因?yàn)樗刻焱砩隙家丶页潆?。。^^).
好的,好的,閑話不扯,繼續(xù)。。。
怎么使用這個(gè)WakeLock呢?我們可以這樣寫:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG"); wakeLock.acquire(); //做我們的工作,在這個(gè)階段,我們的屏幕會(huì)持續(xù)點(diǎn)亮 //釋放鎖,屏幕熄滅。 wl.release();
那么這里我們也可以這樣使用,就是多少時(shí)間后熄滅屏幕
首先點(diǎn)亮屏幕
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()要成對(duì)調(diào)用哦!也就是說(shuō),你申請(qǐng)了亮屏,過(guò)段時(shí)間,你要是釋放它。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android中判斷屏幕是否亮屏和是否解鎖功能
- Android編程實(shí)現(xiàn)禁止系統(tǒng)鎖屏與解鎖亮屏的方法
- android接收到藍(lán)牙配對(duì)請(qǐng)求時(shí)如何點(diǎn)亮屏幕具體實(shí)現(xiàn)
- android圖庫(kù)播放幻燈片時(shí)按power鍵滅屏再亮屏顯示keyguard
- Android點(diǎn)亮屏幕或屏幕解鎖和鎖定以及其他相關(guān)權(quán)限實(shí)現(xiàn)代碼
- Android四大組件之Activity詳解
- Android四大組件之Service詳解
- Android四大組件之BroadcastReceiver詳解
- Android三級(jí)緩存原理講解
- Android亮屏速度分析總結(jié)
相關(guān)文章
Android ListView物流獲取追蹤功能實(shí)現(xiàn)
這篇文章主要介紹了Android ListView物流獲取追蹤功能實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-03-03
淺析Android中build.gradle的實(shí)用技巧
這篇文章主要介紹了淺析Android中build.gradle的實(shí)用技巧,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
Android自定義View之邊框文字、閃爍發(fā)光文字
這篇文章主要為大家詳細(xì)介紹了Android自定義View之邊框文字、閃爍發(fā)光文字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android實(shí)現(xiàn)房貸計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)房貸計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Android?IdleHandler基本使用及應(yīng)用案例詳解
這篇文章主要為大家詳細(xì)介紹了Android?IdleHandler的基本使用及應(yīng)用案例,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下2022-10-10
Android使用Rotate3dAnimation實(shí)現(xiàn)3D旋轉(zhuǎn)動(dòng)畫效果的實(shí)例代碼
利用Android的ApiDemos的Rotate3dAnimation實(shí)現(xiàn)了個(gè)圖片3D旋轉(zhuǎn)的動(dòng)畫,圍繞Y軸進(jìn)行旋轉(zhuǎn),還可以實(shí)現(xiàn)Z軸的縮放。點(diǎn)擊開始按鈕開始旋轉(zhuǎn),點(diǎn)擊結(jié)束按鈕停止旋轉(zhuǎn)。2018-05-05
Android打造流暢九宮格抽獎(jiǎng)活動(dòng)效果
抽獎(jiǎng)活動(dòng)有很多種形式,轉(zhuǎn)盤抽獎(jiǎng),九宮格抽獎(jiǎng),刮刮卡抽獎(jiǎng),這篇文章主要為大家詳細(xì)介紹了如何打造流暢九宮格抽獎(jiǎng)活動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11

