微光模式

「微光模式」是 Google TV 和 Android TV 內建的螢幕保護程式,避免長時間顯示靜態圖片。這對於 OLED 等顯示技術而言非常重要,因為這類技術可能會容易導致螢幕烙印。

如果使用者閒置超過 10 分鐘,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);