精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

又粗又黑又大的吊av| 99久热re在线精品996热视频| 玖玖爱在线观看| 国产第一亚洲| 一区二区三区在线免费| 久久99精品久久久久久水蜜桃| 中文字幕精品视频在线观看| 亚洲欧美色图| 日韩精品在线免费观看| 日韩av在线中文| 蜜桃在线视频| 亚洲男人都懂的| 欧美日韩在线观看一区| 99久久久国产精品无码免费| 亚洲一区网站| 欧美成人久久久| 免费网站在线高清观看| h视频久久久| 欧美日韩久久一区二区| 国产午夜福利100集发布| 免费av不卡| 99久久精品国产麻豆演员表| 91精品免费看| 中文字幕永久在线| a91a精品视频在线观看| 久久久国产精彩视频美女艺术照福利| 在线视频 日韩| 欧美午夜在线播放| 欧美日韩国产系列| 欧美精品无码一区二区三区| 不卡av免费观看| 亚洲视频在线一区| 亚洲国产另类久久久精品极度| av女名字大全列表| 成人激情小说网站| 97久草视频| 99国产成人精品| 裸体在线国模精品偷拍| 日本久久精品视频| 国产精品久久久久久久妇| 午夜性色一区二区三区免费视频| 最近中文字幕2019免费| 人人人妻人人澡人人爽欧美一区| 国内毛片久久| 精品国产一区二区精华| 欧美日韩一区二区区| 电影91久久久| 91精品国产综合久久久久久久| 国产v亚洲v天堂无码久久久| 亚洲国产欧美日本视频| 色综合天天在线| 欧美 丝袜 自拍 制服 另类| aa国产成人| 亚洲成年人网站在线观看| www.欧美黄色| 国产色婷婷在线| 一区二区三区四区在线免费观看| www.黄色网址.com| 最新av在线播放| 一区二区三区免费| 久久亚洲a v| 成人性生交大片免费看网站 | 国产一区二区三区四区在线观看| 国产男人精品视频| 国产人妖一区二区| 国产成人精品免费看| 国产精品一区二区三区在线| 人妻一区二区三区四区| 99国产精品视频免费观看| 免费成人看片网址| 国产系列在线观看| 中文字幕视频一区| 国产av熟女一区二区三区| 999福利在线视频| 色菇凉天天综合网| 日本在线播放一区二区| 亚洲开心激情| 精品一区精品二区| 久久久国产一级片| 欧美一区精品| 国产91精品久久久久| 国产精品尤物视频| 国产麻豆欧美日韩一区| 国产日韩一区二区| 91在线视频| 亚洲精品一二三| 97xxxxx| 久久99国产精品二区高清软件| 91精品综合久久久久久| 国产精品九九视频| 日韩欧美网站| 亚洲91精品在线观看| 精品无码一区二区三区的天堂| 捆绑紧缚一区二区三区视频| 岛国视频一区免费观看| 国产精品四虎| 亚洲永久精品大片| 国产精品亚洲二区在线观看| 国产欧美视频在线| 亚洲精品自产拍| 欧美黑人性猛交xxx| 亚洲欧美日韩一区在线观看| 成人夜晚看av| 欧美大片aaa| 一区二区三区在线免费播放| 天天操天天爽天天射| 成人h动漫精品一区二区器材| 亚洲色图美腿丝袜| 久久久久久久福利| 美女一区二区久久| 久久久免费看| 男女免费观看在线爽爽爽视频| 欧洲一区在线观看| 久久久久久久无码| 国语自产精品视频在线看8查询8| 国产精品99一区| 色婷婷激情五月| 亚洲欧美日韩电影| 日本激情视频在线播放| 日韩在线你懂的| 欧美激情国产高清| 97精品久久人人爽人人爽| 久久久综合视频| 分分操这里只有精品| 国产高清日韩| 色先锋资源久久综合5566| 久久精品视频1| 成人av手机在线观看| 91精品国产吴梦梦| 欧美午夜三级| 亚洲色图15p| 精品免费囯产一区二区三区 | 欧美人xxxx| 欧美偷拍一区二区三区| 免费日韩av片| 好吊色欧美一区二区三区 | 欧美午夜美女看片| 在线视频 日韩| 亚洲视频www| 精品999在线观看| 成年人黄色大片在线| 欧美videos大乳护士334| 欧美色图亚洲视频| 国产一区美女在线| 亚洲综合第一| 小说区图片区亚洲| 久久久国产精品x99av| 91国内精品视频| 国产精品国产a| 天天操天天干天天做| 国产精品久久久久久久久妇女| 国产精品色视频| 日本a级在线| 欧美日本一区二区在线观看| 波多野结衣喷潮| 国产麻豆9l精品三级站| 欧美另类videosbestsex日本| 色悠久久久久综合先锋影音下载| 欧美老肥婆性猛交视频| 国产成人手机在线| 精品福利一区二区| 亚洲综合网在线观看| 日本午夜一区二区| 免费看av软件| 一区二区在线免费播放| 97色在线视频| 国产一区二区三区福利| 欧美视频一区二区三区在线观看| 日本伦理一区二区三区| 国产最新精品精品你懂的| 日本在线视频www色| 超碰成人97| 欧美最近摘花xxxx摘花| 99视频在线观看地址| 日韩一区国产二区欧美三区| 久久综合亚洲色hezyo国产| 9色porny自拍视频一区二区| 三级4级全黄60分钟| 97久久视频| 国产偷国产偷亚洲高清97cao| 高清av不卡| 久久精品国产亚洲| 熟妇高潮一区二区三区| 欧洲亚洲国产日韩| 精品国产视频一区二区三区| 不卡的av电影在线观看| 国产一区二区在线免费播放| 一区二区电影| 欧美日韩亚洲免费| 免费观看性欧美大片无片| 欧美一区二区三区精品电影| 秋霞a级毛片在线看| 亚洲精品国产suv| 一级黄色片免费| 精品久久久久久久久久久久久久| 色www亚洲国产阿娇yao| 成+人+亚洲+综合天堂| 国产wwwxx| 99精品国产福利在线观看免费| 亚洲精品一区二区三区樱花 | 国产亚洲成av人片在线观看桃| 91精品国自产| 色综合天天视频在线观看| 成人免费黄色小视频| 99久久精品情趣| 在线观看中文av| 日韩av中文字幕一区二区三区| 日韩欧美视频免费在线观看| 成人动漫免费在线观看| 精品视频一区二区| 4438全国亚洲精品观看视频| 国产精品免费电影| 忘忧草在线日韩www影院| 欧美xxxx做受欧美| 97超碰国产一区二区三区| 亚洲精品一区二区三区婷婷月| 欧美性色综合网| 久久久.www| 国产欧美一区二区精品性色 | 亚洲天堂网站| 日韩免费av一区二区| 9999热视频在线观看| 久久亚洲精品一区二区| www在线免费观看| 日韩精品在线观| 欧美亚洲精品在线观看| 欧美一级片在线| 国产精品毛片一区视频播| 欧美羞羞免费网站| 最新中文字幕一区| 五月婷婷色综合| 精品视频在线观看免费| 亚洲精品国产精华液| 中文字幕观看av| 国产精品嫩草99a| 精品人妻中文无码av在线| 2019国产精品| 人妻少妇一区二区| 26uuu亚洲综合色| 精品人妻少妇嫩草av无码| 91丨九色porny丨蝌蚪| 欧美日韩一区二区三区四区五区六区| 国产一区二区久久| 日韩不卡的av| 国产成人综合亚洲网站| 亚洲国产日韩在线一区| 国产一区二区三区免费在线观看| 青青草原国产在线视频| 蓝色福利精品导航| 亚洲女人在线观看| 国产成人一区二区精品非洲| 国产精品二区视频| 成人福利在线看| 国产制服丝袜在线| 久久久久久9999| 丁香激情五月少妇| 成人欧美一区二区三区黑人麻豆| 欧美第一页在线观看| 亚洲精品亚洲人成人网| 国产午夜免费视频| 粉嫩老牛aⅴ一区二区三区| 欧美精品韩国精品| 欧美三级韩国三级日本一级| 91在线公开视频| 日韩精品专区在线影院观看| 黄色美女一级片| 国产视频久久久久久久| melody高清在线观看| 日韩午夜在线视频| 免费在线看污片| 热re91久久精品国99热蜜臀| www.26天天久久天堂| 亚洲伊人久久综合| 日本韩国欧美超级黄在线观看| 欧美亚洲丝袜| 91精品99| 女人和拘做爰正片视频| 视频一区国产视频| 999热精品视频| 久久综合五月天婷婷伊人| 中文字幕第二区| 亚洲国产精品久久人人爱蜜臀| 青青草av在线播放| 欧美日本在线观看| 五月天婷婷社区| 色婷婷av一区二区三区在线观看| 青草在线视频在线观看| 国产成人亚洲综合| 亚洲日本va午夜在线电影| 欧美日韩在线观看一区二区三区| 亚洲精品a级片| 亚洲熟女乱色一区二区三区| 精品在线一区二区| 香蕉视频黄色在线观看| 自拍视频在线观看一区二区| 好吊操这里只有精品| 在线播放中文一区| 色播色播色播色播色播在线 | 欧美日韩成人一区二区三区 | 欧美成人中文字幕| 九九热线视频只有这里最精品| 2014亚洲精品| 久久福利综合| aa在线免费观看| 成人精品鲁一区一区二区| 免费看的黄色录像| 粉嫩老牛aⅴ一区二区三区| av中文在线观看| 中文字幕亚洲欧美一区二区三区 | 精品国产一区二区三区麻豆小说| 97精品视频| 国产理论在线播放| 久久午夜色播影院免费高清| 欧美人与禽zozzo禽性配| 欧美亚洲国产bt| 亚洲欧美日本在线观看| 欧美黑人巨大xxx极品| 六九午夜精品视频| 日韩精品欧美一区二区三区| 亚洲福利精品| 乳色吐息在线观看| 综合在线观看色| 在线免费观看高清视频| 亚洲午夜av电影| 亚洲人成午夜免电影费观看| 国产一级二级三级精品| 国产一区二区三区四区三区四| 中文字幕第17页| 国产精品看片你懂得| 欧美 亚洲 另类 激情 另类| 亚洲男人的天堂网站| 瑟瑟视频在线看| 国产一区自拍视频| 亚洲激情午夜| 中文文字幕文字幕高清| 午夜精品视频一区| 人成网站在线观看| 久久久亚洲天堂| 国偷自产av一区二区三区| 免费网站永久免费观看| 高清久久久久久| 国产一级片免费看| 亚洲成人精品视频| h片在线观看视频免费| 国产亚洲自拍偷拍| 亚洲一级在线| 好吊视频在线观看| 欧美在线观看一区| 日本黄色片在线观看| 国产一区二区丝袜高跟鞋图片| 日韩欧美综合| 成年人网站av| 亚洲国产精品精华液网站| 欧美一区二区三区黄片| 97在线免费观看视频| 杨幂一区二区三区免费看视频| 黄色片一级视频| 国产日本亚洲高清| 一区二区三区www污污污网站| 久久久99免费视频| 亚洲性视频在线| 欧美精品一区免费| 亚洲国产精华液网站w| 国产又粗又长又大视频| 欧美日本黄视频| 日韩大尺度在线观看| 亚洲五月天综合| 日韩久久一区二区| 高潮毛片7777777毛片| 欧美亚洲另类在线| 精品毛片免费观看| 毛片毛片毛片毛片毛| 亚洲国产sm捆绑调教视频| 加勒比一区二区三区在线| 成人av番号网| 日韩香蕉视频| 污污视频网站在线免费观看| 日韩一区二区视频在线观看| av在线私库| 亚洲精品白虎| 成人免费视频视频| 久草热在线观看| 性日韩欧美在线视频| 欧美在线电影| 99久久久无码国产精品性波多| 色婷婷综合五月| 日本无删减在线| 日韩精品一区二区三区四区五区| 国产在线播放一区三区四| 亚洲天堂一区在线观看| 日韩在线免费高清视频| 国产精品主播在线观看| 午夜激情av在线| 五月婷婷激情综合| 毛片免费不卡| 欧美一进一出视频| 成人免费视频caoporn| 在线观看亚洲国产| 1769国内精品视频在线播放| 亚洲精品成人影院|