از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
در Android 11، خواب بیتوجه یک ویژگی صرفهجویی در مصرف انرژی است که به کاربر اجازه میدهد تا زمان عدم فعالیت کاربر تنظیم شود و پس از آن صفحه خاموش میشود، حتی اگر پنجرههایی با FLAG_KEEP_SCREEN_ON قابل مشاهده باشند یا wakelockهای سطح FULL_WAKE_LOCK ، SCREEN_BRIGHT_WAKE_LOCK یا SCREEN_DIM_WAKE_LOCK نگه داشته شوند. Wakelock با سطح PARTIAL_WAKE_LOCK تحت تأثیر این ویژگی قرار نمیگیرد. اندکی قبل از انقضای مهلت زمانی، پیامی نشان داده میشود که به کاربر هشدار میدهد در صورت عدم تعامل با دستگاه، دستگاه به خواب میرود.
در این زمینه، فعالیت کاربر به هر چیزی اطلاق میشود که تماسی با PowerManager#userActivity (بدون پرچم USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS ) ایجاد میکند، از جمله اما نه محدود به:
تعامل با صفحه نمایش لمسی
فشار دادن یک دکمه فیزیکی
رویدادهای ورودی را از لوازم جانبی خارجی (به عنوان مثال، صفحه کلید متصل، کنترل بلوتوث، کنترل از راه دور IR) وارد کنید.
تعامل صوتی
دریافت برخی پیام های HDMI CEC، مانند پخش با یک لمس
شروع یک جلسه بازیگران جدید
سفارشی سازی
اگر این ویژگی فعال باشد، دستگاه پس از مدت زمان مشخصی از عدم فعالیت کاربر، یک هشدار روی صفحه نمایش می دهد. اگر اقدامی انجام نشود، صفحه نمایش خاموش می شود. با استفاده از این گزینه های پیکربندی می توانید این ویژگی را سفارشی کنید.
مهلت زمانی را پیکربندی کنید
برای پیکربندی مهلت، عنصر زیر را در 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 .
منابع برای UI هشدار
طرح گفتگوی هشدار در 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
تنظیمات و منابع زمان ساخت را می توان با همپوشانی منابع تغییر داد.
پیاده سازی
این ویژگی را با استفاده از موارد زیر فعال کنید.
config_attentiveTimeout پیشفرض را لغو کنید.
اگر از 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 شامل اجرای پیشفرض UI هشدار است.
packages/apps/TvSettings نمونه ای از نحوه نمایش این ویژگی در تنظیمات را ارائه می دهد.
نمونه آزمایشی دستی
اگر HAL سلامت دستگاه گزارش میدهد که دستگاه باتری دارد ( battery_presenttrue است) مطمئن شوید که تنظیمات توسعهدهنده stay_on_while_plugged_in خاموش است، زیرا ممکن است این ویژگی مانع از خاموش شدن صفحهنمایش شود. adb shell settings put global stay_on_while_plugged_in 0
مدت زمان خواب بی توجه را چند ثانیه بیشتر از مدت زمان گفتگوی هشدار تنظیم کنید. adb shell settings put secure attentive_timeout 32000
پخش یک ویدیو را شروع کنید (برای به دست آوردن قفل صفحه نمایش).
بررسی کنید که کادر گفتگوی هشدار خواب پس از چند ثانیه ظاهر شود.
بررسی کنید که صفحه پس از انقضای زمان تعیین شده خاموش شود.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# TV standby\n\nIn Android 11, inattentive sleep is a power-saving feature\nthat allows a user inactivity timeout to be set after which the screen turns off, even\nif windows with [FLAG_KEEP_SCREEN_ON](https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_KEEP_SCREEN_ON)\nare visible or wakelocks of level\n[FULL_WAKE_LOCK](https://developer.android.com/reference/android/os/PowerManager#FULL_WAKE_LOCK),\n[SCREEN_BRIGHT_WAKE_LOCK](https://developer.android.com/reference/android/os/PowerManager#SCREEN_BRIGHT_WAKE_LOCK) or\n[SCREEN_DIM_WAKE_LOCK](https://developer.android.com/reference/android/os/PowerManager#SCREEN_DIM_WAKE_LOCK)\nare held.\nWakelocks with level [PARTIAL_WAKE_LOCK](https://developer.android.com/reference/android/os/PowerManager#PARTIAL_WAKE_LOCK) aren't affected by this feature.\nShortly before the timeout expires, a message can be shown that warns\nthe user that the device will go to sleep if they don't interact with the device.\n\nIn this context, user activity refers to anything that triggers a call to\n`PowerManager#userActivity` (without the `USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS`\nflag), including but not limited to:\n\n- Interacting with the touchscreen\n- Pressing a physical button\n- Input events from an external accessory (for example, connected keyboard, bluetooth remote, IR remote)\n- Voice interaction\n- Receiving certain HDMI CEC messages, such as One Touch Play\n- Starting a new cast session\n\nCustomization\n-------------\n\nIf the feature is enabled, the device shows an onscreen warning after a specified time of\nuser inactivity. If no action is taken, the screen turns off. You can customize the feature\nusing these configuration options.\n| **Caution:** If a similar power-saving feature is already implemented, enabling this feature might lead to unintended consequences, such as duplicate warning UI.\n\n### Configure the timeout\n\nTo configure the timeout, update the following element in\n`frameworks/base/core/res/res/values/config.xml`:\n\n- `config_attentiveTimeout`\n - Specifies the default time in milliseconds of user inactivity after which the screen turns off (even if screen wakelocks are in place).\n - Set at build time.\n - If the value is between `0` and `config_minimumScreenOffTimeout`, the timeout is set to `config_minimumScreenOffTimeout` to prevent the device from turning off its screen shortly after waking up.\n - Default: `-1`, which disables this feature.\n\n### Override the default timeout\n\nTo override the default timeout setting, update the following element.\n\n- `Settings.Secure.ATTENTIVE_TIMEOUT`\n - If set, overrides the default inattentive sleep timeout set by `config_attentiveTimeout`.\n - Can be set at runtime.\n\n### Configure the duration before warning appears\n\nTo configure the duration, update the following element in\n`frameworks/base/core/res/res/values/config.xml`:\n\n- `config_attentiveWarningDuration`\n - How long to show a warning message to the user before the screen turns off after prolonged user inactivity.\n - The value should be well below the set inattentive sleep timeout, otherwise the warning dialog shows constantly and can't be dismissed.\n - Default: `30000` (30s).\n\n### Show the timeout preferences in TvSettings\n\nTo show the timeout preferences, update the following element in\n`packages/apps/TvSettings/Settings/res/values/config.xml`:\n\n- `config_show_standby_timeout`\n - Whether to show a preference item for allowing turning the screen off during media playback.\n - Default: `false`.\n\n### Resources for the warning UI\n\n- The layout of the warning dialog is defined in `frameworks/base/packages/SystemUI/res/layout/inattentive_sleep_warning.xml`.\n- The following strings for the dialog are defined in `frameworks/base/packages/SystemUI/res/values/strings.xml` and `frameworks/base/packages/SystemUI/res-product/values/strings.xml`.\n - `inattentive_sleep_warning_title`\n - `inattentive_sleep_warning_message`\n\nThe build time configurations and resources can be changed by resource overlays.\n\nImplementation\n--------------\n\nEnable the feature using the following.\n\n1. Override the default `config_attentiveTimeout`.\n2. If using the AOSP `TvSettings`:\n - Disable the feature in settings by overriding `config_show_standby_timeout`.\n - Implement your own settings that set `Settings.Secure.ATTENTIVE_TIMEOUT`.\n\nValidation\n----------\n\nThe CTS tests for the feature are at\n`cts/hostsidetests/os/src/android/os/cts/InattentiveSleepTests.java`.\n\nExamples and source\n-------------------\n\n- `frameworks/base/packages/SystemUI/src/com/android/systemui/power/InattentiveSleepWarningView.java` contains the default warning UI implementation.\n- `packages/apps/TvSettings` provides an example of how to expose the feature in settings.\n\nManual test case example\n------------------------\n\n1. Make sure the `stay_on_while_plugged_in`\n developer setting is off if the device's health HAL reports that the device has a\n battery (`battery_present` is `true`) as this might prevent the\n feature from turning off the screen. \n\n `adb shell settings put global stay_on_while_plugged_in 0`\n\n2. Set an inattentive sleep timeout to be a few seconds more than the warning dialog duration. \n `adb shell settings put secure attentive_timeout 32000`\n3. Start playing back a video (to acquire a screen wakelock).\n4. Verify that the sleep warning dialog appears after a few seconds.\n5. Verify that the screen turns off after the set timeout expires."]]