微光模式

微光模式是 Google TV 和 Android TV 內建的螢幕保護程式。其目的是避免長時間顯示靜態圖片。這對螢幕烙印這類螢幕技術來說非常重要 (例如 OLED)。

使用者閒置 10 分鐘後,OS 會將裝置進入微光模式。超過使用者閒置時間 (由裝置節能模式設定定義) 後,OS 就會進入節能模式,並關閉螢幕。媒體播放應用程式可能會防止裝置進入微光模式,即使使用者未與裝置互動 (例如在觀看電影時也是如此)。

如果使用者在進入微光模式後的 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);