diff --git a/api/system-current.txt b/api/system-current.txt index 1f74cbf6312c0..38ec39902522d 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -128,6 +128,7 @@ package android { field public static final java.lang.String PEERS_MAC_ADDRESS = "android.permission.PEERS_MAC_ADDRESS"; field public static final java.lang.String PERFORM_CDMA_PROVISIONING = "android.permission.PERFORM_CDMA_PROVISIONING"; field public static final java.lang.String PERFORM_SIM_ACTIVATION = "android.permission.PERFORM_SIM_ACTIVATION"; + field public static final java.lang.String POWER_SAVER = "android.permission.POWER_SAVER"; field public static final java.lang.String PROVIDE_RESOLVER_RANKER_SERVICE = "android.permission.PROVIDE_RESOLVER_RANKER_SERVICE"; field public static final java.lang.String PROVIDE_TRUST_AGENT = "android.permission.PROVIDE_TRUST_AGENT"; field public static final java.lang.String QUERY_TIME_ZONE_RULES = "android.permission.QUERY_TIME_ZONE_RULES"; @@ -3995,6 +3996,7 @@ package android.os { } public final class PowerManager { + method public boolean setPowerSaveMode(boolean); method public void userActivity(long, int, int); field public static final int USER_ACTIVITY_EVENT_ACCESSIBILITY = 3; // 0x3 field public static final int USER_ACTIVITY_EVENT_BUTTON = 1; // 0x1 diff --git a/api/test-current.txt b/api/test-current.txt index 9567616152541..53ff068001821 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -708,6 +708,10 @@ package android.os { method public void removeSyncBarrier(int); } + public final class PowerManager { + method public boolean setPowerSaveMode(boolean); + } + public class Process { method public static final int getThreadScheduler(int) throws java.lang.IllegalArgumentException; } diff --git a/config/hiddenapi-light-greylist.txt b/config/hiddenapi-light-greylist.txt index 04724616420b8..1ad8e7e563306 100644 --- a/config/hiddenapi-light-greylist.txt +++ b/config/hiddenapi-light-greylist.txt @@ -867,7 +867,6 @@ Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_TIMEOUT:I Landroid/os/PowerManager;->isLightDeviceIdleMode()Z Landroid/os/PowerManager;->mHandler:Landroid/os/Handler; Landroid/os/PowerManager;->mService:Landroid/os/IPowerManager; -Landroid/os/PowerManager;->setPowerSaveMode(Z)Z Landroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V Landroid/os/PowerManager;->wakeUp(JLjava/lang/String;)V Landroid/os/Process;->BLUETOOTH_UID:I diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 89a5defd221d0..8ea061e4a8d0a 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -1154,10 +1154,15 @@ public final class PowerManager { * * @return True if the set was allowed. * - * @see #isPowerSaveMode() - * * @hide + * @see #isPowerSaveMode() */ + @SystemApi + @TestApi + @RequiresPermission(anyOf = { + android.Manifest.permission.DEVICE_POWER, + android.Manifest.permission.POWER_SAVER + }) public boolean setPowerSaveMode(boolean mode) { try { return mService.setPowerSaveMode(mode); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 5a1f2e8d870c5..f97873e566a46 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -3407,6 +3407,12 @@ + + +