java息屏脚本_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()要成對調用哦!也就是說,你申請了亮屏,過段時間,你要是釋放它。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值