• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* //device/java/android/android/os/IPowerManager.aidl
2 **
3 ** Copyright 2007, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 **     http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17 
18 package android.os;
19 
20 import android.os.BatterySaverPolicyConfig;
21 import android.os.ParcelDuration;
22 import android.os.PowerSaveState;
23 import android.os.WorkSource;
24 import android.os.IWakeLockCallback;
25 import android.os.IScreenTimeoutPolicyListener;
26 
27 /** @hide */
28 
29 interface IPowerManager
30 {
acquireWakeLock(IBinder lock, int flags, String tag, String packageName, in WorkSource ws, String historyTag, int displayId, IWakeLockCallback callback)31     void acquireWakeLock(IBinder lock, int flags, String tag, String packageName, in WorkSource ws,
32             String historyTag, int displayId, IWakeLockCallback callback);
acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName, int uidtoblame, int displayId, IWakeLockCallback callback)33     void acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName,
34             int uidtoblame, int displayId, IWakeLockCallback callback);
35     @UnsupportedAppUsage
releaseWakeLock(IBinder lock, int flags)36     void releaseWakeLock(IBinder lock, int flags);
updateWakeLockUids(IBinder lock, in int[] uids)37     void updateWakeLockUids(IBinder lock, in int[] uids);
setPowerBoost(int boost, int durationMs)38     oneway void setPowerBoost(int boost, int durationMs);
setPowerMode(int mode, boolean enabled)39     oneway void setPowerMode(int mode, boolean enabled);
40 
41     // Functionally identical to setPowerMode, but returns whether the call was successful
setPowerModeChecked(int mode, boolean enabled)42     boolean setPowerModeChecked(int mode, boolean enabled);
43 
updateWakeLockWorkSource(IBinder lock, in WorkSource ws, String historyTag)44     void updateWakeLockWorkSource(IBinder lock, in WorkSource ws, String historyTag);
updateWakeLockCallback(IBinder lock, IWakeLockCallback callback)45     void updateWakeLockCallback(IBinder lock, IWakeLockCallback callback);
46     @UnsupportedAppUsage
isWakeLockLevelSupported(int level)47     boolean isWakeLockLevelSupported(int level);
isWakeLockLevelSupportedWithDisplayId(int level, int displayId)48     boolean isWakeLockLevelSupportedWithDisplayId(int level, int displayId);
addScreenTimeoutPolicyListener(int displayId, IScreenTimeoutPolicyListener listener)49     oneway void addScreenTimeoutPolicyListener(int displayId,
50         IScreenTimeoutPolicyListener listener);
removeScreenTimeoutPolicyListener(int displayId, IScreenTimeoutPolicyListener listener)51     oneway void removeScreenTimeoutPolicyListener(int displayId,
52         IScreenTimeoutPolicyListener listener);
53 
userActivity(int displayId, long time, int event, int flags)54     void userActivity(int displayId, long time, int event, int flags);
wakeUp(long time, int reason, String details, String opPackageName)55     void wakeUp(long time, int reason, String details, String opPackageName);
wakeUpWithDisplayId(long time, int reason, String details, String opPackageName, int displayId)56     void wakeUpWithDisplayId(long time, int reason, String details, String opPackageName, int displayId);
57     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
goToSleep(long time, int reason, int flags)58     void goToSleep(long time, int reason, int flags);
59     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
goToSleepWithDisplayId(int displayId, long time, int reason, int flags)60     void goToSleepWithDisplayId(int displayId, long time, int reason, int flags);
61     @UnsupportedAppUsage(maxTargetSdk = 28)
nap(long time)62     void nap(long time);
getBrightnessConstraint(int displayId, int constraint)63     float getBrightnessConstraint(int displayId, int constraint);
64     @UnsupportedAppUsage
isInteractive()65     boolean isInteractive();
isDisplayInteractive(int displayId)66     boolean isDisplayInteractive(int displayId);
areAutoPowerSaveModesEnabled()67     boolean areAutoPowerSaveModesEnabled();
isPowerSaveMode()68     boolean isPowerSaveMode();
getPowerSaveState(int serviceType)69     PowerSaveState getPowerSaveState(int serviceType);
setPowerSaveModeEnabled(boolean mode)70     boolean setPowerSaveModeEnabled(boolean mode);
isBatterySaverSupported()71     boolean isBatterySaverSupported();
getFullPowerSavePolicy()72     BatterySaverPolicyConfig getFullPowerSavePolicy();
setFullPowerSavePolicy(in BatterySaverPolicyConfig config)73     boolean setFullPowerSavePolicy(in BatterySaverPolicyConfig config);
setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)74     boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold);
setAdaptivePowerSavePolicy(in BatterySaverPolicyConfig config)75     boolean setAdaptivePowerSavePolicy(in BatterySaverPolicyConfig config);
setAdaptivePowerSaveEnabled(boolean enabled)76     boolean setAdaptivePowerSaveEnabled(boolean enabled);
getPowerSaveModeTrigger()77     int getPowerSaveModeTrigger();
setBatteryDischargePrediction(in ParcelDuration timeRemaining, boolean isCustomized)78     void setBatteryDischargePrediction(in ParcelDuration timeRemaining, boolean isCustomized);
getBatteryDischargePrediction()79     ParcelDuration getBatteryDischargePrediction();
isBatteryDischargePredictionPersonalized()80     boolean isBatteryDischargePredictionPersonalized();
isDeviceIdleMode()81     boolean isDeviceIdleMode();
isLightDeviceIdleMode()82     boolean isLightDeviceIdleMode();
83     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
isLowPowerStandbySupported()84     boolean isLowPowerStandbySupported();
isLowPowerStandbyEnabled()85     boolean isLowPowerStandbyEnabled();
86     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
setLowPowerStandbyEnabled(boolean enabled)87     void setLowPowerStandbyEnabled(boolean enabled);
88     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
setLowPowerStandbyActiveDuringMaintenance(boolean activeDuringMaintenance)89     void setLowPowerStandbyActiveDuringMaintenance(boolean activeDuringMaintenance);
90     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
forceLowPowerStandbyActive(boolean active)91     void forceLowPowerStandbyActive(boolean active);
92     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
setLowPowerStandbyPolicy(in @ullable LowPowerStandbyPolicy policy)93     void setLowPowerStandbyPolicy(in @nullable LowPowerStandbyPolicy policy);
94     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
getLowPowerStandbyPolicy()95     LowPowerStandbyPolicy getLowPowerStandbyPolicy();
isExemptFromLowPowerStandby()96     boolean isExemptFromLowPowerStandby();
isReasonAllowedInLowPowerStandby(int reason)97     boolean isReasonAllowedInLowPowerStandby(int reason);
isFeatureAllowedInLowPowerStandby(String feature)98     boolean isFeatureAllowedInLowPowerStandby(String feature);
99     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.SET_LOW_POWER_STANDBY_PORTS)")
acquireLowPowerStandbyPorts(in IBinder token, in List<LowPowerStandbyPortDescription> ports)100     void acquireLowPowerStandbyPorts(in IBinder token, in List<LowPowerStandbyPortDescription> ports);
101     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.SET_LOW_POWER_STANDBY_PORTS)")
releaseLowPowerStandbyPorts(in IBinder token)102     void releaseLowPowerStandbyPorts(in IBinder token);
103     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf = { android.Manifest.permission.MANAGE_LOW_POWER_STANDBY, android.Manifest.permission.DEVICE_POWER })")
getActiveLowPowerStandbyPorts()104     List<LowPowerStandbyPortDescription> getActiveLowPowerStandbyPorts();
105 
106     parcelable LowPowerStandbyPolicy {
107         String identifier;
108         List<String> exemptPackages;
109         int allowedReasons;
110         List<String> allowedFeatures;
111     }
112 
113     parcelable LowPowerStandbyPortDescription {
114         int protocol;
115         int portMatcher;
116         int portNumber;
117         @nullable byte[] localAddress;
118     }
119 
120     @UnsupportedAppUsage
reboot(boolean confirm, String reason, boolean wait)121     void reboot(boolean confirm, String reason, boolean wait);
rebootSafeMode(boolean confirm, boolean wait)122     void rebootSafeMode(boolean confirm, boolean wait);
shutdown(boolean confirm, String reason, boolean wait)123     void shutdown(boolean confirm, String reason, boolean wait);
crash(String message)124     void crash(String message);
getLastShutdownReason()125     int getLastShutdownReason();
getLastSleepReason()126     int getLastSleepReason();
127 
setStayOnSetting(int val)128     void setStayOnSetting(int val);
boostScreenBrightness(long time)129     void boostScreenBrightness(long time);
130 
131     // Do not use, will be deprecated soon.  b/151831987
acquireWakeLockAsync(IBinder lock, int flags, String tag, String packageName, in WorkSource ws, String historyTag)132     oneway void acquireWakeLockAsync(IBinder lock, int flags, String tag, String packageName,
133             in WorkSource ws, String historyTag);
releaseWakeLockAsync(IBinder lock, int flags)134     oneway void releaseWakeLockAsync(IBinder lock, int flags);
updateWakeLockUidsAsync(IBinder lock, in int[] uids)135     oneway void updateWakeLockUidsAsync(IBinder lock, in int[] uids);
136 
137     // --- deprecated ---
isScreenBrightnessBoosted()138     boolean isScreenBrightnessBoosted();
139 
140     // sets the attention light (used by phone app only)
setAttentionLight(boolean on, int color)141     void setAttentionLight(boolean on, int color);
142 
143     // controls whether PowerManager should doze after the screen turns off or not
setDozeAfterScreenOff(boolean on)144     void setDozeAfterScreenOff(boolean on);
145     // returns whether ambient display is available on the device.
isAmbientDisplayAvailable()146     boolean isAmbientDisplayAvailable();
147     // suppresses the current ambient display configuration and disables ambient display.
suppressAmbientDisplay(String token, boolean suppress)148     void suppressAmbientDisplay(String token, boolean suppress);
149     // returns whether ambient display is suppressed by the calling app with the given token.
isAmbientDisplaySuppressedForToken(String token)150     boolean isAmbientDisplaySuppressedForToken(String token);
151     // returns whether ambient display is suppressed by any app with any token.
isAmbientDisplaySuppressed()152     boolean isAmbientDisplaySuppressed();
153     // returns whether ambient display is suppressed by the given app with the given token.
isAmbientDisplaySuppressedForTokenByApp(String token, int appUid)154     boolean isAmbientDisplaySuppressedForTokenByApp(String token, int appUid);
155 
156     // Forces the system to suspend even if there are held wakelocks.
forceSuspend()157     boolean forceSuspend();
158 
159     const int LOCATION_MODE_NO_CHANGE = 0;
160     const int LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF = 1;
161     const int LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF = 2;
162     const int LOCATION_MODE_FOREGROUND_ONLY = 3;
163     const int LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF = 4;
164     const int MIN_LOCATION_MODE = 0;
165     const int MAX_LOCATION_MODE = 4;
166 
167     const int GO_TO_SLEEP_REASON_MIN = 0;
168     const int GO_TO_SLEEP_REASON_APPLICATION = 0;
169     const int GO_TO_SLEEP_REASON_TIMEOUT = 2;
170     const int GO_TO_SLEEP_REASON_LID_SWITCH = 3;
171     const int GO_TO_SLEEP_REASON_POWER_BUTTON = 4;
172     const int GO_TO_SLEEP_REASON_HDMI = 5;
173     const int GO_TO_SLEEP_REASON_SLEEP_BUTTON = 6;
174     const int GO_TO_SLEEP_REASON_ACCESSIBILITY = 7;
175     const int GO_TO_SLEEP_REASON_FORCE_SUSPEND = 8;
176     const int GO_TO_SLEEP_REASON_INATTENTIVE = 9;
177     const int GO_TO_SLEEP_REASON_QUIESCENT = 10;
178     const int GO_TO_SLEEP_REASON_MAX = 10;
179     const int GO_TO_SLEEP_FLAG_NO_DOZE = 1 << 0;
180 
181 }
182