微光模式是 Google TV 和 Android TV 內建的螢幕保護程式,這麼做會避免長時間顯示靜態圖片。這對 OLED 等顯示技術來說至關重要,因為 OLED 可能容易受到螢幕烙印影響。
OS 會在使用者閒置 10 分鐘後,將裝置設為微光模式。使用者閒置一段時間後 (由裝置節能模式定義) 將進入節能模式,讓螢幕關閉。媒體播放應用程式可能會阻止裝置進入微光模式,即使使用者在觀看電影時並未與裝置互動也一樣。
如果使用者在進入微光模式後的 30 分鐘內與裝置互動,系統會還原進入微光模式時開啟的應用程式。如果使用者在進入微光模式後超過 30 分鐘與裝置互動,便會返回主畫面。當裝置處於節能模式時,當使用者使用電源鍵啟動裝置時,系統會將他們帶往主畫面。此外,如果使用者在裝置處於節能模式時,使用特定應用程式按鈕 (例如 YouTube) 啟動裝置,系統會將他們直接導向該應用程式。
如果您使用 MediaSession
進行媒體播放,系統會在開始播放時保留隱含部分 Wake Lock。暫停播放並不會釋放這個 Wake Lock。
這表示裝置可能會自動進入微光模式,但之後不會進入節能模式。如果使用者在進入微光模式後的 30 分鐘內與裝置互動,系統就會還原應用程式。
影片播放
播放影片時,請務必避免裝置在使用者啟動播放期間進入微光模式,以便提供不中斷的觀看體驗。不過,應用程式停止或暫停播放時,不應防止裝置進入微光模式。
音訊播放
對於音訊播放,除非應用程式實作了包含非靜態圖像的螢幕保護程式,否則不應在播放期間阻止微光模式。微光模式啟用時,音訊會繼續播放。
在 Android 上播放音訊會隱含部分 Wake Lock。這「不會」阻止裝置進入微光模式,但「會」無法防止後續轉換為節能模式。因此,即使裝置進入微光模式,裝置仍會繼續播放,但裝置不會進入休眠狀態,以防播放不間斷。
阻擋微光模式
您可以防止 OS 將裝置設為微光模式,但必須遵守微光模式要求。應用程式開發人員無法防止裝置進入節能模式。
應用程式可以在 Window
上設定標記,防止螢幕關閉:
Kotlin
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Java
requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
如果設定這個標記,系統就會停用微光模式。如要重新啟用,必須清除標記:
Kotlin
requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Java
requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);