If device implementations include features to improve device power management that are included in AOSP (e.g. App Standby Bucket, Doze) or extend the features that do not apply harder restrictions than the Rare App Standby Bucket, they:
true
for PowerManager.isPowerSaveMode()
when the device is on power save mode.If device implementations extend power management features that are included in AOSP and that extension applies more stringent restrictions than the Rare App Standby Bucket, refer to section 3.5.1.
In addition to the power-saving modes, Android device implementations MAY implement any or all of the 4 sleeping power states as defined by the Advanced Configuration and Power Interface (ACPI).
If device implementations implement S4 power states as defined by the ACPI, they:
If device implementations implement S3 power states as defined by the ACPI, they:
[C-2-1] MUST meet C-1-1 above, or, MUST enter S3 state only when third-party applications do not need the system resources (e.g. the screen, CPU).
Conversely, MUST exit from S3 state when third-party applications need the system resources, as described on this SDK.
For example, while the third-party applications request to keep the screen on through FLAG_KEEP_SCREEN_ON
or keep CPU running through PARTIAL_WAKE_LOCK
, the device MUST NOT enter S3 state unless, as described in C-1-1, the user has taken explicit action to put the device in an inactive state. Conversely, at a time when a task that third-party apps implement through JobScheduler is triggered or Firebase Cloud Messaging is delivered to third-party apps, the device MUST exit the S3 state unless the user has put the device in an inactive state. These are not comprehensive examples and AOSP implements extensive wake-up signals that trigger a wakeup from this state.