โหมดแอมเบียนท์คือภาพพักหน้าจอที่ติดตั้งไว้ใน Google TV และ Android TV โดยมีวัตถุประสงค์เพื่อหลีกเลี่ยงการแสดงภาพนิ่งเป็นเวลานาน ซึ่งสำคัญสำหรับเทคโนโลยีการแสดงผล เช่น OLED ที่อาจเกิดปัญหาหน้าจอเบิร์นได้
ระบบปฏิบัติการจะใส่อุปกรณ์ไว้ในโหมดแอมเบียนท์หลังจากไม่มีการใช้งานของผู้ใช้เป็นเวลา 10 นาที หลังจากผู้ใช้ไม่ได้ใช้งานเป็นระยะเวลาหนึ่ง (กำหนดโดยการตั้งค่าโหมดประหยัดพลังงานของอุปกรณ์) ระบบปฏิบัติการจะเข้าสู่โหมดประหยัดพลังงาน โดยปิดการแสดงผล แอปการเล่นสื่ออาจป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดแอมเบียนท์ แม้ว่าผู้ใช้จะไม่โต้ตอบกับอุปกรณ์ เช่น ขณะดูภาพยนตร์
หากผู้ใช้โต้ตอบกับอุปกรณ์ภายใน 30 นาทีหลังจากเข้าสู่โหมดแอมเบียนท์ ระบบจะกู้คืนแอปที่ใช้งานอยู่เมื่อเข้าสู่โหมดแอมเบียนท์ หากผู้ใช้โต้ตอบกับอุปกรณ์นานกว่า 30 นาทีหลังจากเข้าสู่โหมดแอมเบียนท์ ระบบจะนําผู้ใช้กลับไปยังหน้าจอหลัก เมื่อผู้ใช้เปิดอุปกรณ์โดยใช้ปุ่มเปิด/ปิดขณะที่อุปกรณ์อยู่ในโหมดประหยัดพลังงาน ระบบจะนำผู้ใช้ไปยังหน้าจอหลัก หรือหากผู้ใช้เปิดอุปกรณ์ขณะที่อยู่ในโหมดประหยัดพลังงานโดยใช้ปุ่มแอปที่เฉพาะเจาะจง (เช่น YouTube) ระบบจะนำผู้ใช้ไปยังแอปนั้นโดยตรง
การเล่นวิดีโอ
สําหรับการเล่นวิดีโอ คุณต้องป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดแอมเบียนท์ขณะที่เล่นวิดีโอโดยผู้ใช้เพื่อให้ผู้ใช้ได้รับประสบการณ์การรับชมที่ราบรื่น อย่างไรก็ตาม แอปไม่ควรป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดแอมเบียนท์เมื่อหยุดเล่นหรือหยุดชั่วคราว
การเล่นเสียง
สําหรับการเล่นเสียง แอปไม่ควรป้องกันโหมดแอมเบียนท์ระหว่างการเล่น เว้นแต่จะใช้ภาพพักหน้าจอของตัวเองที่มีภาพเคลื่อนไหว การเล่นเสียงจะดำเนินต่อไปขณะที่โหมดแอมเบียนท์ทำงานอยู่
การเล่นเสียงใน Android จะถือการล็อกการตื่นบางส่วนโดยปริยาย การดำเนินการนี้จะไม่ป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดแอมเบียนท์ แต่จะป้องกันไม่ให้เปลี่ยนเป็นโหมดประหยัดพลังงานในภายหลัง ดังนั้นการเล่นจะยังคงดำเนินต่อไปแม้ว่าอุปกรณ์จะเข้าสู่โหมดแอมเบียนท์ แต่อุปกรณ์จะได้รับการปกป้องไม่ให้เข้าสู่โหมดสลีปเพื่อให้เล่นได้อย่างต่อเนื่อง
การป้องกันโหมดแอมเบียนท์
คุณสามารถป้องกันไม่ให้ระบบปฏิบัติการนำอุปกรณ์เข้าสู่โหมดแอมเบียนท์ได้ แต่ต้องใช้ตามข้อกำหนดของโหมดแอมเบียนท์ นักพัฒนาแอปไม่สามารถป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดประหยัดพลังงาน
แอปสามารถป้องกันไม่ให้หน้าจอปิดได้โดยการตั้งค่า Flag ใน Window
ดังนี้
Kotlin
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Java
requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
โหมดแอมเบียนท์จะปิดอยู่ขณะตั้งค่า Flag นี้ หากต้องการเปิดใช้อีกครั้ง คุณต้องล้างการแจ้งว่าไม่เหมาะสม ดังนี้
Kotlin
requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Java
requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);