À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Dans Android 11, le mode veille inattentive est une fonctionnalité d'économie d'énergie qui permet de définir un délai d'inactivité de l'utilisateur au bout duquel l'écran s'éteint, même si des fenêtres avec FLAG_KEEP_SCREEN_ON sont visibles ou que des wakelocks de niveau FULL_WAKE_LOCK, SCREEN_BRIGHT_WAKE_LOCK ou SCREEN_DIM_WAKE_LOCK sont maintenus.
Les wakelocks de niveau PARTIAL_WAKE_LOCK ne sont pas affectés par cette fonctionnalité.
Peu de temps avant l'expiration du délai avant expiration, un message peut s'afficher pour avertir l'utilisateur que l'appareil se met en veille s'il n'interagit pas avec lui.
Dans ce contexte, l'activité de l'utilisateur désigne tout ce qui déclenche un appel à PowerManager#userActivity (sans l'indicateur USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS), y compris, mais sans s'y limiter:
Interagir avec l'écran tactile
Appuyer sur un bouton physique
Événements d'entrée provenant d'un accessoire externe (par exemple, clavier connecté, télécommande Bluetooth, télécommande infrarouge)
Interaction vocale
Réception de certains messages HDMI-CEC, tels que la lecture en appuyant sur une touche
Démarrer une nouvelle session de diffusion
Personnalisation
Si la fonctionnalité est activée, un avertissement s'affiche à l'écran après un délai d'inactivité spécifié. Si aucune action n'est effectuée, l'écran s'éteint. Vous pouvez personnaliser cette fonctionnalité à l'aide de ces options de configuration.
Configurer le délai avant expiration
Pour configurer le délai avant expiration, mettez à jour l'élément suivant dans frameworks/base/core/res/res/values/config.xml:
config_attentiveTimeout
Indique le délai d'inactivité de l'utilisateur, en millisecondes, au terme duquel l'écran s'éteint (même si des wakelocks d'écran sont en place).
Défini à l'heure de compilation.
Si la valeur est comprise entre 0 et config_minimumScreenOffTimeout, le délai d'expiration est défini sur config_minimumScreenOffTimeout pour empêcher l'appareil d'éteindre son écran peu de temps après son réveil.
Valeur par défaut: -1, ce qui désactive cette fonctionnalité.
Ignorer le délai avant expiration par défaut
Pour remplacer le paramètre de délai avant expiration par défaut, modifiez l'élément suivant.
Settings.Secure.ATTENTIVE_TIMEOUT
Si cette valeur est définie, elle remplace le délai avant expiration du sommeil inattentif par défaut défini par config_attentiveTimeout.
Peut être défini au moment de l'exécution.
Configurer la durée avant l'affichage de l'avertissement
Pour configurer la durée, mettez à jour l'élément suivant dans frameworks/base/core/res/res/values/config.xml:
config_attentiveWarningDuration
Durée pendant laquelle un message d'avertissement s'affiche avant que l'écran ne s'éteigne après une inactivité prolongée de l'utilisateur.
La valeur doit être bien inférieure au délai avant expiration de la mise en veille inattentive défini, sinon la boîte de dialogue d'avertissement s'affiche en permanence et ne peut pas être fermée.
Valeur par défaut: 30000 (30 s).
Afficher les préférences de délai avant expiration dans TvSettings
Pour afficher les préférences de délai avant expiration, mettez à jour l'élément suivant dans packages/apps/TvSettings/Settings/res/values/config.xml:
config_show_standby_timeout
Indique si un élément de préférence doit être affiché pour autoriser l'extinction de l'écran pendant la lecture multimédia.
Par défaut: false.
Ressources pour l'UI d'avertissement
La mise en page de la boîte de dialogue d'avertissement est définie dans frameworks/base/packages/SystemUI/res/layout/inattentive_sleep_warning.xml.
Les chaînes suivantes de la boîte de dialogue sont définies dans frameworks/base/packages/SystemUI/res/values/strings.xml et frameworks/base/packages/SystemUI/res-product/values/strings.xml.
inattentive_sleep_warning_title
inattentive_sleep_warning_message
Les configurations et les ressources au moment de la compilation peuvent être modifiées par des superpositions de ressources.
Implémentation
Activez la fonctionnalité à l'aide des éléments suivants.
Ignorer le config_attentiveTimeout par défaut.
Si vous utilisez l'TvSettings AOSP:
Désactivez la fonctionnalité dans les paramètres en remplaçant config_show_standby_timeout.
Implémentez vos propres paramètres qui définissent Settings.Secure.ATTENTIVE_TIMEOUT.
Validation
Les tests CTS de la fonctionnalité se trouvent à l'adresse cts/hostsidetests/os/src/android/os/cts/InattentiveSleepTests.java.
Exemples et source
frameworks/base/packages/SystemUI/src/com/android/systemui/power/InattentiveSleepWarningView.java contient l'implémentation de l'UI d'avertissement par défaut.
packages/apps/TvSettings fournit un exemple d'exposition de la fonctionnalité dans les paramètres.
Exemple de scénario de test manuel
Assurez-vous que le paramètre de développement stay_on_while_plugged_in est désactivé si le HAL de santé de l'appareil indique qu'il dispose d'une batterie (battery_present est true), car cela pourrait empêcher la fonctionnalité d'éteindre l'écran. adb shell settings put global stay_on_while_plugged_in 0
Définissez le délai avant expiration de la mise en veille en cas d'inattention sur quelques secondes de plus que la durée de la boîte de dialogue d'avertissement. adb shell settings put secure attentive_timeout 32000
Lancez la lecture d'une vidéo (pour acquérir un wakelock d'écran).
Vérifiez que la boîte de dialogue d'avertissement de mise en veille s'affiche après quelques secondes.
Vérifiez que l'écran s'éteint une fois le délai défini écoulé.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],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."]]