המתנה לטלוויזיה

ב-Android 11, שינה לא קשובה היא תכונה חיסכון בחשמל המאפשרת להגדיר פסק זמן של חוסר פעילות של המשתמש שאחריו המסך נכבה, גם אם חלונות עם FLAG_KEEP_SCREEN_ON גלויים או ווייקלוקים ברמה FULL_WAKE_LOCK , SCREEN_BRIGHT_WAKE_LOCK או SCREEN_DIM_WAKE_LOCK מוחזקים. Wakelocks ברמה PARTIAL_WAKE_LOCK אינם מושפעים מתכונה זו. זמן קצר לפני פקיעת הזמן הקצוב, ניתן להציג הודעה שמזהירה את המשתמש שהמכשיר ילך לישון אם לא יקיים אינטראקציה עם המכשיר.

בהקשר זה, פעילות משתמש מתייחסת לכל דבר שמפעיל קריאה ל- PowerManager#userActivity (ללא הדגל USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS ), כולל אך לא מוגבל ל:

  • אינטראקציה עם מסך המגע
  • לחיצה על כפתור פיזי
  • קלט אירועים מאביזר חיצוני (לדוגמה, מקלדת מחוברת, שלט Bluetooth, שלט IR)
  • אינטראקציה קולית
  • קבלת הודעות HDMI CEC מסוימות, כגון One Touch Play
  • מתחיל סשן שחקנים חדש

התאמה אישית

אם התכונה מופעלת, המכשיר מציג אזהרה על המסך לאחר זמן מוגדר של חוסר פעילות משתמש. אם לא ננקטת פעולה, המסך נכבה. אתה יכול להתאים אישית את התכונה באמצעות אפשרויות תצורה אלה.

הגדרת פסק הזמן

כדי להגדיר את הזמן הקצוב, עדכן את הרכיב הבא ב- frameworks/base/core/res/res/values/config.xml :

  • config_attentiveTimeout
    • מציין את זמן ברירת המחדל באלפיות שניות של חוסר פעילות של המשתמש שאחריו המסך נכבה (גם אם ישנן נעילות למסך).
    • מוגדר בזמן בנייה.
    • אם הערך הוא בין 0 ל- config_minimumScreenOffTimeout , הזמן הקצוב מוגדר ל- config_minimumScreenOffTimeout כדי למנוע מהמכשיר לכבות את המסך שלו זמן קצר לאחר ההתעוררות.
    • ברירת מחדל: -1 , אשר משבית תכונה זו.

עקיפת פסק הזמן המוגדר כברירת מחדל

כדי לעקוף את הגדרת ברירת המחדל של הזמן הקצוב, עדכן את הרכיב הבא.

  • Settings.Secure.ATTENTIVE_TIMEOUT
    • אם מוגדר, עוקף את ברירת המחדל של פסק זמן השינה הלא קשוב שהוגדר על ידי config_attentiveTimeout .
    • ניתן להגדיר בזמן ריצה.

הגדרת משך הזמן לפני האזהרה מופיעה

כדי להגדיר את משך הזמן, עדכן את הרכיב הבא ב- frameworks/base/core/res/res/values/config.xml :

  • config_attentiveWarningDuration
    • כמה זמן להציג הודעת אזהרה למשתמש לפני שהמסך נכבה לאחר חוסר פעילות ממושך של המשתמש.
    • הערך צריך להיות הרבה מתחת לתפוגה שהוגדרה לשינה לא קשובה, אחרת תיבת הדו-שיח האזהרה מוצגת כל הזמן ולא ניתן לבטלה.
    • ברירת מחדל: 30000 (30 שניות).

מציג את העדפות הזמן הקצוב ב-TvSettings

כדי להציג את העדפות הזמן הקצוב, עדכן את הרכיב הבא ב- packages/apps/TvSettings/Settings/res/values/config.xml :

  • config_show_standby_timeout
    • האם להציג פריט העדפה לאפשר כיבוי המסך במהלך הפעלת מדיה.
    • ברירת מחדל: false .

משאבים עבור ממשק המשתמש באזהרה

  • הפריסה של תיבת האזהרה מוגדרת ב- frameworks/base/packages/SystemUI/res/layout/inattentive_sleep_warning.xml .
  • המחרוזות הבאות עבור הדו-שיח מוגדרות ב- frameworks/base/packages/SystemUI/res/values/strings.xml וב- frameworks/base/packages/SystemUI/res-product/values/strings.xml .
    • inattentive_sleep_warning_title
    • inattentive_sleep_warning_message

ניתן לשנות את תצורות ומשאבי זמן הבנייה על ידי שכבות-על של משאבים.

יישום

הפעל את התכונה באמצעות הפעולות הבאות.

  1. עוקף את ברירת המחדל config_attentiveTimeout .
  2. אם אתה משתמש ב- AOSP TvSettings :
    • השבת את התכונה בהגדרות על ידי ביטול config_show_standby_timeout .
    • יישם הגדרות משלך שקובעות את ההגדרות Settings.Secure.ATTENTIVE_TIMEOUT .

מַתַן תוֹקֵף

מבחני ה-CTS עבור התכונה נמצאים בכתובת cts/hostsidetests/os/src/android/os/cts/InattentiveSleepTests.java .

דוגמאות ומקור

  • frameworks/base/packages/SystemUI/src/com/android/systemui/power/InattentiveSleepWarningView.java מכיל את יישום ממשק האזהרה המוגדר כברירת מחדל.
  • packages/apps/TvSettings מספק דוגמה כיצד לחשוף את התכונה בהגדרות.

דוגמה למקרה מבחן ידני

  1. ודא שהגדרת המפתח stay_on_while_plugged_in כבויה אם תקינות ההתקן של המכשיר מדווחת שלמכשיר יש סוללה ( battery_present is true ) שכן הדבר עלול למנוע מהפיצ'ר לכבות את המסך.
    adb shell settings put global stay_on_while_plugged_in 0

  2. הגדר פסק זמן שינה לא קשוב למספר שניות יותר ממשך הדו-שיח של האזהרה.
    adb shell settings put secure attentive_timeout 32000
  3. התחל להשמיע סרטון (כדי לרכוש wakelock למסך).
  4. ודא שדו-שיח אזהרת השינה מופיע לאחר מספר שניות.
  5. ודא שהמסך נכבה לאחר תום הזמן הקצוב שהוגדר.