Add REBOOT_READY broadcast

Adds a new REBOOT_READY intent
which may be sent from the system server,
indicating the device's reboot-readiness state.

This broadcast will be sent with a boolean extra,
which will provide a positive or negative signal
of whether the device is ready to reboot. This
broadcast may only be received if the REBOOT
permission is held.

Test: atest CtsRebootReadinessTestCases
Bug: 161353402

Change-Id: I70fa1c35c844189af86c519749144732ceceaaac
This commit is contained in:
Gavin Corkery
2021-02-10 22:36:41 +00:00
parent e114b8f498
commit a6a206f3ac
4 changed files with 32 additions and 1 deletions

View File

@@ -2185,6 +2185,7 @@ package android.content {
field public static final String ACTION_PENDING_INCIDENT_REPORTS_CHANGED = "android.intent.action.PENDING_INCIDENT_REPORTS_CHANGED";
field public static final String ACTION_PRE_BOOT_COMPLETED = "android.intent.action.PRE_BOOT_COMPLETED";
field public static final String ACTION_QUERY_PACKAGE_RESTART = "android.intent.action.QUERY_PACKAGE_RESTART";
field public static final String ACTION_REBOOT_READY = "android.intent.action.REBOOT_READY";
field public static final String ACTION_RESOLVE_INSTANT_APP_PACKAGE = "android.intent.action.RESOLVE_INSTANT_APP_PACKAGE";
field @RequiresPermission(android.Manifest.permission.REVIEW_ACCESSIBILITY_SERVICES) public static final String ACTION_REVIEW_ACCESSIBILITY_SERVICES = "android.intent.action.REVIEW_ACCESSIBILITY_SERVICES";
field @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public static final String ACTION_REVIEW_ONGOING_PERMISSION_USAGE = "android.intent.action.REVIEW_ONGOING_PERMISSION_USAGE";
@@ -2208,6 +2209,7 @@ package android.content {
field public static final String EXTRA_INSTANT_APP_HOSTNAME = "android.intent.extra.INSTANT_APP_HOSTNAME";
field public static final String EXTRA_INSTANT_APP_SUCCESS = "android.intent.extra.INSTANT_APP_SUCCESS";
field public static final String EXTRA_INSTANT_APP_TOKEN = "android.intent.extra.INSTANT_APP_TOKEN";
field public static final String EXTRA_IS_READY_TO_REBOOT = "android.intent.extra.IS_READY_TO_REBOOT";
field public static final String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE";
field public static final String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID";
field public static final String EXTRA_PACKAGES = "android.intent.extra.PACKAGES";

View File

@@ -4753,7 +4753,7 @@ public abstract class Context {
/**
* Use with {@link #getSystemService(String)} to retrieve an
* {@link android.app.scheduling.RebootReadinessManagerService} for communicating
* {@link android.scheduling.RebootReadinessManagerService} for communicating
* with the reboot readiness detector.
*
* @see #getSystemService(String)

View File

@@ -4754,6 +4754,32 @@ public class Intent implements Parcelable, Cloneable {
public static final String ACTION_PACKAGE_NEEDS_INTEGRITY_VERIFICATION =
"android.intent.action.PACKAGE_NEEDS_INTEGRITY_VERIFICATION";
/**
* Broadcast Action: Indicates that the device's reboot readiness has changed.
*
* <p>This broadcast will be sent with an extra that indicates whether or not the device is
* ready to reboot.
* <p>
* The receiver <em>must</em> have the {@link android.Manifest.permission#REBOOT} permission.
* <p class="note">
* This is a protected intent that can only be sent by the system.
*
* @see #EXTRA_IS_READY_TO_REBOOT
* @hide
*/
@SystemApi
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_REBOOT_READY = "android.intent.action.REBOOT_READY";
/**
* A boolean extra used with {@link #ACTION_REBOOT_READY} which indicates if the
* device is ready to reboot.
* Will be {@code true} if ready to reboot, {@code false} otherwise.
* @hide
*/
@SystemApi
public static final String EXTRA_IS_READY_TO_REBOOT = "android.intent.extra.IS_READY_TO_REBOOT";
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// Standard intent categories (see addCategory()).

View File

@@ -690,6 +690,9 @@
<!-- Made protected in S (was added in R) -->
<protected-broadcast android:name="com.android.internal.intent.action.BUGREPORT_REQUESTED" />
<!-- Added in S -->
<protected-broadcast android:name="android.intent.action.REBOOT_READY" />
<!-- ====================================================================== -->
<!-- RUNTIME PERMISSIONS -->
<!-- ====================================================================== -->