編輯:關於Android編程
本文實例講述了Android亮屏和熄屏控制實現方法。分享給大家供大家參考,具體如下:
一、概述
我們的Android應用程序很多需要和亮屏和熄屏打交道,比如鬧鐘的時候,需要保持亮屏,之後又需要熄屏。那麼今天,我們來分析下這方面的功能。
二. 系統服務 PowerManager.java
顧名思義,PowerManager.java就是管理我們電源方面的功能的,當然也包括我們屏幕的亮和熄滅。沒錯,我們的應用程序就是通過這個系統服務來實現亮屏和熄屏的功能的。
1. 應用程序獲取PowerManager服務, 我們可以這樣書寫:
復制代碼 代碼如下:PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
因為PowerManager是系統服務,所以它的生命周期不是應用程序所能控制的;應用程序只能通過系統,向系統請求獲取PowerManager服務,然後系統把這個服務的應用給我們。
2. goToSleep()方法, 這個方法可以強制我們的屏幕熄屏。我們可以這樣調用:
在上面拿到pm對象之後,這樣調用
pm.goToSleep(SystemClock.uptimeMillis());
3. setBacklightBrightness()方法,這個方法可以設置背光的亮度,從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
由於它定義了這麼多類型,每種類型可以指定相對應的部件工作和不工作。那麼我們就可以利用這些類型,從最細粒度來控制我們的屏幕,控制我們的電源,從而讓我們的電源工作時間盡可能的延長(大家都知道,智能手機的電池問題是一個硬傷, 每天一充電,有木有? 別人說用安卓手機的男人都是顧家好男人,因為他每天晚上都要回家充電。。^^).
好的,好的,閒話不扯,繼續。。。
怎麼使用這個WakeLock呢?我們可以這樣寫:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG"); wakeLock.acquire(); //做我們的工作,在這個階段,我們的屏幕會持續點亮 //釋放鎖,屏幕熄滅。 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()要成對調用哦!也就是說,你申請了亮屏,過段時間,你要是釋放它。
更多關於Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
一:基本操作1繼承SQLiteOpenHelperpublic class UserSqliteOpenHelper extends SQLiteOpenHe
最近在學習AIOSO(Alibaba Internal Open Source Organization,即阿裡巴巴內部開源組織) 的一個子項目MMCherryUI,這是
1,使用SharedPrefrences用於簡單少量的數據,數據的格式簡單:都是普通的字符串,標量類型的值等,比如各種配置信息等等SharedPrefrences與Edi
我在和ViewPager一起使用時,遇到了一些坑,按照官方給出的示例,我寫出來的代碼是這樣的布局代碼 java代碼public class MainActi