حالت محیطی (Ambient Mode) یک محافظ صفحه نمایش است که در گوگل تیوی و اندروید تیوی تعبیه شده است. هدف آن جلوگیری از نمایش تصاویر ثابت برای مدت طولانی است. این ویژگی برای فناوریهای نمایشگر مانند OLED که ممکن است مستعد سوختگی صفحه نمایش باشند، مهم است.
سیستم عامل پس از ۱۰ دقیقه عدم فعالیت کاربر، دستگاه را در حالت Ambient Mode قرار میدهد. پس از مدت زمان بیشتر عدم فعالیت کاربر (که توسط تنظیمات Energy Saver دستگاه تعریف میشود)، سیستم عامل وارد حالت Energy Saver میشود و صفحه نمایش را خاموش میکند. برنامههای پخش رسانه ممکن است از ورود دستگاه به حالت Ambient Mode جلوگیری کنند، حتی اگر کاربر با آن تعاملی نداشته باشد، مثلاً هنگام تماشای فیلم.
اگر کاربر ظرف ۳۰ دقیقه پس از ورود به حالت Ambient Mode با دستگاه تعامل داشته باشد، برنامهای که هنگام ورود به حالت Ambient Mode فعال بوده است، بازیابی میشود. اگر کاربر بیش از ۳۰ دقیقه پس از ورود به حالت Ambient Mode با دستگاه تعامل داشته باشد، به صفحه اصلی بازگردانده میشود. وقتی کاربر دستگاه را در حالت صرفهجویی در مصرف انرژی با استفاده از دکمه پاور روشن کند، به صفحه اصلی منتقل میشود. از طرف دیگر، اگر کاربر دستگاه را در حالت صرفهجویی در مصرف انرژی با استفاده از دکمههای برنامه خاص (مثلاً یوتیوب) روشن کند، مستقیماً به آن برنامه منتقل میشود.
پخش ویدئو
برای پخش ویدیو، جلوگیری از ورود دستگاه به حالت محیطی (Ambient Mode) در هنگام پخش درخواستی کاربر برای ارائه یک تجربه تماشای بدون وقفه، بسیار مهم است. با این حال، برنامهها نباید هنگام توقف یا مکث پخش، مانع از ورود دستگاهها به حالت محیطی شوند.
پخش صوتی
برای پخش صدا، برنامهها نباید حالت محیطی (Ambient Mode) را در حین پخش مسدود کنند، مگر اینکه محافظ صفحه نمایش مخصوص خود را با تصاویر غیر استاتیک پیادهسازی کنند. پخش صدا در حالی که حالت محیطی فعال است، ادامه خواهد یافت.
پخش صدا در اندروید به طور ضمنی یک قفل بیداری جزئی را حفظ میکند. این مانع از ورود دستگاه به حالت Ambient Mode نمیشود ، اما از انتقال بعدی به حالت صرفهجویی در مصرف انرژی جلوگیری میکند . بنابراین، پخش حتی پس از ورود دستگاه به حالت Ambient Mode ادامه مییابد، اما از رفتن دستگاه به حالت خواب جلوگیری میشود تا پخش بدون وقفه انجام شود.
جلوگیری از حالت محیطی
میتوان مانع از قرار دادن دستگاه در حالت Ambient Mode توسط سیستم عامل شد، اما این کار باید مطابق با الزامات حالت Ambient Mode انجام شود. توسعهدهندگان برنامهها نمیتوانند مانع از ورود دستگاه به حالت صرفهجویی در مصرف انرژی شوند.
برنامهها میتوانند با تنظیم یک پرچم روی Window ، از خاموش شدن صفحه نمایش جلوگیری کنند:
کاتلین
activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
جاوا
requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
حالت محیطی (Ambient Mode) در حین تنظیم این پرچم غیرفعال خواهد بود. برای فعال کردن مجدد آن، باید پرچم را پاک کنید:
کاتلین
activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
جاوا
requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);