精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

設備息屏?不存在的!保持 Android 常亮的幾種方法!

企業動態
在實際開發過程中,會有一些需要保持屏幕常亮的需求。如果不特殊設置,通常我們的手機在靜置一段時間之后,就會自動進入息屏狀態,而我們要做的就是阻止它進入息屏狀態。

[[218814]]

一、前言

在實際開發過程中,會有一些需要保持屏幕常亮的需求。如果不特殊設置,通常我們的手機在靜置一段時間之后,就會自動進入息屏狀態,而我們要做的就是阻止它進入息屏狀態。

這個功能,使用場景要從實際情況出發,例如:播放器,還有一些向智能電視投屏的手機 App ,都可能會有類似的需要。

本篇文章就對 Android 下,如何保持屏幕常亮,做一個簡單的記錄和總結。

二、幾種常見的方法

2.1 被廢棄的 WakeLock

如果你看過比較早的 Android 教程類的書籍的話,在說到保持屏幕常亮這個需求的時候,你應該會想到 WakeLock。可惜如果你現在還想只用 WakeLock 來限制屏幕常亮,你會發現已經做不到了,不過作為一個教科書式的方法,雖然已經被遺棄了,我們還是先來了解一下它。

WakeLock 使用起來也非常的簡單。

從上面的例子可以看到,WakeLock 主要是通過一個系統服務 PowerManager,然后通過調用它的 acquire() 方法獲取一個 WakeLock 資源。

WakeLock 本身也是一種資源,在使用完成之后,別忘了調用 release() 方法進行釋放。

而使用 WakeLock 還需要額外的聲明 WAKE_LOCK 權限。

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

前面使用 newWakeLock() 的時候,需要傳遞一個 Flag,而和屏幕相關的三個 Flag,在 Api Level 17+ 以上均已經被標識為 @Deprecated 了。

這三個 Flag 分別是:

  • SCREEN_DIM_WAKE_LOCK:只限制屏幕,保證亮起,但是允許它亮度變低。
  • SCREEN_BRIGHT_WAKE_LOCK:保證屏幕***亮,但是鍵盤背光燈允許熄滅。
  • FULL_WAKE_LOCK:保證屏幕***亮度,并且鍵盤背光燈不允許熄滅。

當然,有時候一些被標記為 @Deprecated 的 Api,雖然不再推薦使用,但是依然是可用的。可惜 WakeLock 不在此列,它在高版本上真的被廢棄了,你再使用它去阻止息屏,你會發現真的沒有效果。

其實這也很好理解,PowerManager 本身就是一個系統資源,如果任由開發者去使用它,可能導致屏幕永遠沒有機會息屏。可屏幕正是耗電大戶,對于 Android 節能的思想,肯定是要被限制的。

既然 Google 已經對它標志位 @Deprecated ,并且實際上也不起作用了,我們就不要再使用它了。不過呢,Google 在廢棄這些 Api 的同時,也提供了對應的解決方案,那就是使用 FLAG_KEEP_SCREEN_ON,接下去了解它。

2、FLAG_KEEP_SCREEN_ON

WakeLock 的 FULL_WAKE_LOCK 在被標記為廢棄的同時,還提供了一個解決方案,那就是使用 FLAG_KEEP_SCREEN_ON 來控制屏幕常亮。

FLAG_KEEP_SCREEN_ON 使用起來也非常的簡單,它是一個頁面 Window 對象上的一個 Flag ,使用 addFlags() 方法就可以添加。

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

當然,這里使用完成之后,也是需要取消掉的。取消這個 Flag 使用 clearFlags() 方法來取消。

  1. getWindow(). 
  2. clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

通常我們會在一個 Activity 的 onResume() 和 onPause() 方法中,分別調用這兩個方法。

看看 FLAG_KEEP_SCREEN_ON 的文檔解釋。

  1. /**  
  2. *  Window flag: as long as this window is visible to the user, keep 
  3. *  the device's screen turned on and bright. 
  4. */ 
  5. public static final int FLAG_KEEP_SCREEN_ON     = 0x00000080; 

從這里可以看出來,它只作用在一個被顯示的 Window 上,并且保持設備屏幕高亮度的常亮。

其實這里也可以看出來,官方廢棄 WakeLock 而推薦使用 FLAG_KEEP_SCREEN_ON ,一部分原因在于 WakeLock 是一個全局的資源,而 FLAG_KEEP_SCREEN_ON 只是一個和 window 相關的資源,作用范圍更小了一些。并且它比 WakeLock 更好的一點在于,它不需要額外的申請權限,一般來說,我們還是推薦使用它的。

3、keepScreenOn

除了給 Window 添加一個 FLAG_KEEP_SCREEN_ON 的 Flag 之外,還可以對當前頁面中,可見的 View 調用 setKeepScreenOn() 方法來設置屏幕常亮。

setKeepScreenOn() 是 View 對象上的方法,同時也提供了布局中的屬性 android:keepScreenOn="true" 來方便我們在布局中對其進行設置。

需要注意的一點,使用 setKeepScreenOn() 設置的常亮標識,需要當前 View 保持屏幕可見才行。所以一般而言,我們會在頁面的根布局中,添加此屬性。

  1. /** 
  2. View flag indicating that the screen should remain on while the 
  3. * window containing this view is visible to the user.  This effectively 
  4. * takes care of automatically setting the WindowManager's 
  5. * {@link WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON}. 
  6. */ 
  7. public static final int KEEP_SCREEN_ON = 0x04000000; 

通過注釋文檔可以看到,實際上它的原理和 FLAG_KEEP_SCREEN_ON 一樣的,只是它更簡單,只需要對某個 View 設置,如果該 View 可見即生效,否者就不生效。

4、MediaPlayer的 setScreenOnWhilePlaying()

如果我們是使用一個 MediaPlayer 來進行視頻播放的話,MediaPlayer 還提供了 setScreenOnWhilePlaying() 方法,來設置屏幕常量。

它的方法實現如下:

  1. /** 
  2.  * Control whether we should use the attached SurfaceHolder to keep the 
  3.  * screen on while video playback is occurring.  This is the preferred 
  4.  * method over {@link #setWakeMode} where possible, since it doesn't 
  5.  * require that the application have permission for low-level wake lock 
  6.  * access. 
  7.  * 
  8.  * @param screenOn Supply true to keep the screen onfalse to allow it 
  9.  * to turn off
  10.  */ 
  11. public void setScreenOnWhilePlaying(boolean screenOn) { 
  12.     if (mScreenOnWhilePlaying != screenOn) { 
  13.         if (screenOn && mSurfaceHolder == null) { 
  14.             Log.w(TAG, "setScreenOnWhilePlaying(true) is ineffective without a SurfaceHolder"); 
  15.         } 
  16.         mScreenOnWhilePlaying = screenOn; 
  17.         updateSurfaceScreenOn(); 
  18.     } 

之后通過 updateSurfaceScreenOn() 方法來限制屏幕是否常亮。

  1. private void updateSurfaceScreenOn() { 
  2.     if (mSurfaceHolder != null) { 
  3.         mSurfaceHolder.setKeepScreenOn(mScreenOnWhilePlaying && mStayAwake); 
  4.     } 

它操作的是 SurfaceHolder 的 setKeepScreenOn() 方法,而另外一個條件 mStayAwake ,實際上就是當前的播放狀態,當正在播放的時候,它就為 true,所以使用這種方式,只會在視頻播放的時候,保持屏幕常亮,正常來說這也是我們對一般播放器的要求。

三、小結

看完本篇文章,你應該知道當你需要保持屏幕常亮的時候,你需要如何做了吧!

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2023-10-30 08:22:58

Android常亮Activity

2009-09-01 18:35:53

C#判斷文件存在

2021-01-25 07:21:24

GitHub 開源代碼下載

2018-07-19 06:14:09

2023-09-12 08:02:13

viewport斷點

2018-07-03 14:20:10

數據庫恢復備份

2024-12-13 08:25:59

DML操作SQL

2020-11-03 10:23:22

云計算容器技術

2017-12-26 08:25:57

硬盤數據丟失

2017-12-07 14:57:13

404互聯網錯誤代碼

2024-07-22 08:03:55

2012-05-16 11:35:16

SQL Server拒絕訪問

2019-12-31 09:11:01

后臺Android系統

2024-06-03 08:26:34

Android開發監聽器

2009-09-18 12:29:55

2010-05-17 15:17:06

MySQL常用操作

2013-08-21 11:31:21

iPhone圖片方法

2010-06-03 08:55:43

LINQ

2021-09-26 05:05:09

WindowWeb JS

2011-07-13 10:01:16

域控制器
點贊
收藏

51CTO技術棧公眾號

欧美久久久久免费| 99精品视频免费在线观看| www.久久色.com| wwwxxx色| 欧美xxx网站| 亚洲免费观看在线视频| 麻豆成人av| 99视频免费看| 久久综合激情| 欧美久久精品一级黑人c片 | 成人免费网站www网站高清| 亚洲欧洲一区二区三区| 久久久精品有限公司| 国产伦精品一区二区三区四区| 亚洲国产第一| 日韩在线观看免费av| 国产网站无遮挡| 国产电影一区| 在线精品视频免费播放| 日本国产中文字幕| 幼a在线观看| 久久综合九色综合欧美亚洲| 91中文精品字幕在线视频| 中文字幕在线欧美| 亚洲美女91| 久久色精品视频| 精品成人无码一区二区三区| a级日韩大片| 制服丝袜亚洲精品中文字幕| 亚洲最大综合网| 成人欧美magnet| 午夜不卡av免费| 国产小视频免费| a视频在线免费看| 中文字幕高清不卡| 日本一区二区三区视频在线播放| 欧美性受xxxx狂喷水| 国产精品伊人色| 国产精品中文在线| 日韩av免费播放| 国产精品最新自拍| 97精品在线视频| 久久久久亚洲天堂| 欧美片第1页综合| 欧美成人精品xxx| 日本黄色片免费观看| 色爱综合网欧美| 最新亚洲国产精品| 91狠狠综合久久久久久| 精品香蕉视频| 国产亚洲欧美日韩精品| 美女洗澡无遮挡| 国产精品一区二区av交换| 亚洲欧美在线一区| 男人舔女人下部高潮全视频| 伊人成综合网yiren22| 国产视频一区在线| 中文字幕免费高清| 精品视频99| 日韩一区二区三区国产| 亚洲欧美精品久久| 亚洲乱码精品| 色在人av网站天堂精品| 中文字幕一区二区三区手机版| 在线看片日韩| 69av在线播放| 97人妻一区二区精品视频| 久久亚洲欧洲| 国产一区香蕉久久| 超碰在线人人干| 99视频一区二区| 欧美成人免费在线| jizz视频在线观看| 亚洲欧美另类小说| 黄色一级在线视频| 亚洲成a人片| 欧美精品乱码久久久久久| 国产在线观看中文字幕| 国产毛片精品| 亚洲无av在线中文字幕| 欧美三级黄色大片| 99精品视频免费观看| 国产精品久久久久aaaa九色| 国产在成人精品线拍偷自揄拍| 国产成人免费在线观看| 久久免费看av| 日本黄色片在线观看| 一区二区三区91| www黄色av| av日韩一区| 精品一区二区电影| 秋霞欧美一区二区三区视频免费| 尤物在线精品| 国产欧美精品在线播放| 欧日韩在线视频| 国产欧美一区二区精品性色 | 亚洲久久成人| 国产一区二区在线播放| 三级视频在线看| 中文字幕亚洲成人| 欧美国产亚洲一区| 免费观看性欧美大片无片| 亚洲欧美日韩精品久久亚洲区| 国产美女高潮视频| 久久大逼视频| 99一区二区| 日本成人网址| 欧美性猛交xxxx久久久| 超碰人人cao| 精品国产午夜| 97视频国产在线| 国产乱码精品一区二区| 久久精品欧美一区二区三区不卡 | 国模精品视频| 欧美一区二视频| gv天堂gv无码男同在线观看 | 精品日韩久久久| 久久99精品国产自在现线| 久久色精品视频| 一区二区视频免费| 91色.com| 免费看黄在线看| 蜜桃精品视频| 久久亚洲精品一区| 亚洲无码久久久久久久| 久久女同互慰一区二区三区| av网站手机在线观看| 国产精品日韩精品在线播放| 在线观看久久av| 中文字幕第四页| 99久久亚洲一区二区三区青草| 99久re热视频精品98| 欧美91在线|欧美| 一区二区在线视频| 无码无套少妇毛多18pxxxx| 北岛玲一区二区三区四区| 久久久久久久久久久久久国产| 欧美jizz18| 中文字幕在线精品| 性色av一区二区三区四区| 久久免费电影网| 国产裸体舞一区二区三区| 欧美a级网站| 97在线视频免费播放| 欧美自拍偷拍第一页| 亚洲图片欧美一区| 理论片大全免费理伦片| 亚洲成色精品| 久久99国产精品| 英国三级经典在线观看| 日韩精品高清在线观看| 91精品国产综合久久久蜜臀九色| xfplay精品久久| 日本在线视频www| 国模吧精品视频| 国产精品日韩电影| 免费大片黄在线观看视频网站| 7777精品伊人久久久大香线蕉最新版| 后入内射无码人妻一区| 极品销魂美女一区二区三区| 亚洲最大免费| 亚洲三区欧美一区国产二区| 久久久久中文字幕2018| 日韩一区免费视频| 欧美性猛交视频| 成人免费毛片糖心| 轻轻草成人在线| 91社在线播放| 国产香蕉精品| 日本韩国欧美精品大片卡二| av国产在线观看| 91精品久久久久久蜜臀| 久久久久久天堂| 久久午夜老司机| 邪恶网站在线观看| 欧美黄色一级视频| 欧美成熟毛茸茸复古| 一区在线影院| 欧美成人精品激情在线观看| 亚洲av成人精品日韩在线播放| 91黄色小视频| 欧美日韩国产精品一区二区三区| 99久久综合狠狠综合久久| 浓精h攵女乱爱av| 欧美成人精品| 免费在线国产精品| 宅男噜噜噜66国产精品免费| 久久久久久久999精品视频| 九九在线视频| 日韩你懂的在线观看| 成人在线免费看视频| 亚洲婷婷在线视频| 7788色淫网站小说| 极品美女销魂一区二区三区免费| www精品久久| 97国产成人高清在线观看| 国内精品二区| 深夜福利亚洲| 日本精品久久电影| 污视频免费在线观看| 亚洲欧洲日产国码av系列天堂| 99国产成人精品| 色噜噜夜夜夜综合网| 国产黄色片在线免费观看| 久久蜜桃av一区二区天堂 | 瑟瑟视频在线免费观看| 亚洲一区二区三区爽爽爽爽爽| 免费成人深夜天涯网站| 不卡大黄网站免费看| 天天综合成人网| 先锋影音久久久| 国产妇女馒头高清泬20p多| 日韩一区二区在线免费| 免费日韩av电影| 国产伦乱精品| 国产成人精品一区二区三区福利| 久久影视精品| 国产成人精品最新| av今日在线| 欧美肥臀大乳一区二区免费视频| 成年女人的天堂在线| 亚洲色图综合久久| 亚洲日本国产精品| 精品久久久久久久久久久久久久久 | 亚洲成人av片在线观看| 国产视频第一页| 欧美美女bb生活片| 中文字幕视频一区二区| 色一区在线观看| 国产专区第一页| 亚洲国产裸拍裸体视频在线观看乱了 | 国产v在线观看| 91精品视频网| 99国产在线播放| 91.com在线观看| 亚洲天堂网在线视频| 欧美系列日韩一区| 伊人网中文字幕| 草草在线视频| 久久一夜天堂av一区二区三区| 99riav国产精品视频| 国产一区二区三区久久久| 污视频网址在线观看| 蜜桃视频一区二区三区| 污版视频在线观看| 久久国产精品99精品国产 | 欧美片一区二区| 亚洲精品欧美激情| 欧美激情图片小说| 一区二区在线观看视频| 国产一级做a爰片在线看免费| 亚洲一区在线观看网站| 懂色av.com| 色综合一个色综合亚洲| 秋霞av一区二区三区| 欧日韩精品视频| 伊人久久成人网| 884aa四虎影成人精品一区| 国产精品一区二区黑人巨大| 日韩一区二区免费在线电影| 国精产品一品二品国精品69xx| 亚洲精品一区二区三区精华液| 污视频在线免费| 在线国产精品播放| 国产成人午夜| 韩国19禁主播vip福利视频| 欧美日韩国产观看视频| 国产成人精品久久久| 欧美成人福利| 99视频在线| 欧美人与拘性视交免费看| 亚洲制服中文| 一区二区亚洲| 少妇性l交大片| 国产麻豆精品久久一二三| 完美搭档在线观看| 国产视频一区在线观看| 五月天av网站| 黄色精品在线看| 中文字幕第31页| 亚洲а∨天堂久久精品9966| 邻居大乳一区二区三区| 不卡中文字幕av| 伊人色综合一区二区三区影院视频| 国产精品成人在线| 亚洲国产欧美国产第一区| 麻豆传媒一区| 欧美在线三区| 北条麻妃视频在线| 高清不卡在线观看av| 亚洲熟妇一区二区三区| 日韩理论片一区二区| 亚洲国产精品成人无久久精品| 欧洲精品中文字幕| 秋霞网一区二区| 日韩中文字幕欧美| 在线观看涩涩| 2019国产精品视频| sdde在线播放一区二区| 日本精品久久久久久久久久| 另类小说综合欧美亚洲| 黄色a一级视频| 亚洲免费在线播放| 欧美成人精品网站| 亚洲精品www久久久| 欧美13一16娇小xxxx| 日韩av电影手机在线| 66精品视频在线观看| 亚洲欧洲国产日韩精品| 亚洲综合丁香| 日本人妻一区二区三区| 亚洲人成影院在线观看| 亚洲大片免费观看| 亚洲精品aⅴ中文字幕乱码| 最新国产在线拍揄自揄视频| 国产欧美韩国高清| 国产99亚洲| 日本在线xxx| 国产成人综合在线播放| 日韩av毛片在线观看| 91国偷自产一区二区三区观看 | 国产精品二三区| 日韩精品一区二区亚洲av| 精品毛片乱码1区2区3区| 青青影院在线观看| 国产精品三级久久久久久电影| 日韩欧美美女在线观看| 日韩欧美不卡在线| 成人午夜私人影院| 精品无码人妻一区二区三| 91精品视频网| 91最新在线视频| 91理论片午午论夜理片久久| 欧美第一精品| 欧美wwwwwww| 国产精品人成在线观看免费| 超碰在线97观看| 在线观看日韩www视频免费| 精品日本视频| 亚洲视频sss| 麻豆精品久久久| 亚洲女人久久久| 欧美一区二区三区喷汁尤物| 黄色免费在线观看| 亚洲字幕在线观看| 欧美特黄一区| 日韩精品一区二区三区高清免费| 亚洲成人av一区二区三区| 日韩一卡二卡在线| 欧美亚洲日本黄色| 精品欧美久久| 91在线第一页| 一区二区三区日韩精品视频| 欧美天堂在线视频| 欧美最猛黑人xxxx黑人猛叫黄| 国产不卡av一区二区| 美女网站视频黄色| 亚洲欧美日本韩国| 丰满大乳国产精品| 欧美亚洲第一区| 成人91在线| 亚洲一级片av| 亚洲福利视频一区二区| 瑟瑟在线观看| 国产日本欧美在线观看| 欧美激情第8页| 91视频啊啊啊| 欧美色精品在线视频| av免费看在线| 久久国产精品一区二区三区| 免费高清在线一区| 久久久久久激情| 亚洲欧美另类国产| 中文字幕日韩亚洲| 老太脱裤让老头玩ⅹxxxx| 国产欧美日韩久久| 亚洲第一大网站| 国产成人久久久精品一区| 国产精品99一区二区三区| 香港三日本8a三级少妇三级99| 在线观看国产日韩| 青青草视频在线免费直播| 欧洲亚洲一区二区| 国产毛片精品一区| 无码一区二区三区| 欧美激情欧美激情| 成人3d动漫在线观看| 污污免费在线观看| 欧美男人的天堂一二区| 91黄页在线观看| 一区二区三区av在线| 99国产精品视频免费观看| 一级黄色片在线看| 日本久久久久久久久| 欧美激情第10页| 91ts人妖另类精品系列| 亚洲精品国产综合久久| 玖玖精品一区| 少妇黄色一级片| 欧美日韩免费网站|