blob: 185693e8e6e012047475557c6b777c79b29627c1 [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/* //device/java/android/android/os/IPowerManager.aidl
2**
3** Copyright 2007, The Android Open Source Project
4**
jackqdyulei455e90a2017-02-09 15:29:16 -08005** 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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08008**
jackqdyulei455e90a2017-02-09 15:29:16 -08009** http://www.apache.org/licenses/LICENSE-2.0
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080010**
jackqdyulei455e90a2017-02-09 15:29:16 -080011** 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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080015** limitations under the License.
16*/
17
18package android.os;
19
Kweku Adams9f488e22019-01-14 16:25:08 -080020import android.os.BatterySaverPolicyConfig;
jackqdyulei455e90a2017-02-09 15:29:16 -080021import android.os.PowerSaveState;
Kweku Adams9f488e22019-01-14 16:25:08 -080022import android.os.WorkSource;
Dianne Hackborn7e9f4eb2010-09-10 18:43:00 -070023
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080024/** @hide */
Eric Laurent6dbdc402011-07-22 09:04:31 -070025
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080026interface IPowerManager
27{
Daniel Erat22f58762015-09-30 14:55:35 -060028 // WARNING: When methods are inserted or deleted, the transaction IDs in
29 // frameworks/native/include/powermanager/IPowerManager.h must be updated to match the order in this file.
30 //
31 // When a method's argument list is changed, BnPowerManager's corresponding serialization code (if any) in
32 // frameworks/native/services/powermanager/IPowerManager.cpp must be updated.
Dianne Hackborna1f1a3c2014-02-24 18:12:28 -080033 void acquireWakeLock(IBinder lock, int flags, String tag, String packageName, in WorkSource ws,
34 String historyTag);
35 void acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName,
36 int uidtoblame);
Andrei Oneae30e3922019-03-21 13:57:17 +000037 @UnsupportedAppUsage
Mike Lockwood0e39ea82009-11-18 15:37:10 -050038 void releaseWakeLock(IBinder lock, int flags);
Marco Nelissen11252352013-10-16 10:57:05 -070039 void updateWakeLockUids(IBinder lock, in int[] uids);
Ruchi Kandoif20a5eb2014-04-01 17:39:20 -070040 oneway void powerHint(int hintId, int data);
Jeff Brown96307042012-07-27 15:51:34 -070041
Dianne Hackborn4590e522014-03-24 13:36:46 -070042 void updateWakeLockWorkSource(IBinder lock, in WorkSource ws, String historyTag);
Jeff Brown96307042012-07-27 15:51:34 -070043 boolean isWakeLockLevelSupported(int level);
44
Andrei Onea24ec3212019-03-15 17:35:05 +000045 @UnsupportedAppUsage
Jeff Brown96307042012-07-27 15:51:34 -070046 void userActivity(long time, int event, int flags);
Michael Wrighte3001042019-02-05 00:13:14 +000047 void wakeUp(long time, int reason, String details, String opPackageName);
Andrei Onea24ec3212019-03-15 17:35:05 +000048 @UnsupportedAppUsage
Jeff Brown6d8fd272014-05-20 21:24:38 -070049 void goToSleep(long time, int reason, int flags);
Artur Satayev70507ed2019-07-29 13:18:27 +010050 @UnsupportedAppUsage(maxTargetSdk = 28)
Jeff Brown62c82e42012-09-26 01:30:41 -070051 void nap(long time);
Andrei Onea24ec3212019-03-15 17:35:05 +000052 @UnsupportedAppUsage
Jeff Brown037c33e2014-04-09 00:31:55 -070053 boolean isInteractive();
Dianne Hackborneb94fa72014-06-03 17:48:12 -070054 boolean isPowerSaveMode();
jackqdyulei455e90a2017-02-09 15:29:16 -080055 PowerSaveState getPowerSaveState(int serviceType);
Salvador Martinezc8c4c5d2019-03-11 11:11:37 -070056 boolean setPowerSaveModeEnabled(boolean mode);
Salvador Martinezb85a9f82019-03-20 16:21:27 -070057 boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold);
Kweku Adams9f488e22019-01-14 16:25:08 -080058 boolean setAdaptivePowerSavePolicy(in BatterySaverPolicyConfig config);
59 boolean setAdaptivePowerSaveEnabled(boolean enabled);
Salvador Martinezb85a9f82019-03-20 16:21:27 -070060 int getPowerSaveModeTrigger();
Dianne Hackborn88e98df2015-03-23 13:29:14 -070061 boolean isDeviceIdleMode();
Dianne Hackborn08c47a52015-10-15 12:38:14 -070062 boolean isLightDeviceIdleMode();
Jeff Brown96307042012-07-27 15:51:34 -070063
Andrei Onea24ec3212019-03-15 17:35:05 +000064 @UnsupportedAppUsage
Dianne Hackbornc428aae2012-10-03 16:38:22 -070065 void reboot(boolean confirm, String reason, boolean wait);
Tony Mantlerb8009fd2016-03-14 15:55:35 -070066 void rebootSafeMode(boolean confirm, boolean wait);
Yusuke Sato705ffd12015-07-21 15:52:11 -070067 void shutdown(boolean confirm, String reason, boolean wait);
Dan Egnor60d87622009-12-16 16:32:58 -080068 void crash(String message);
Salvador Martineza6f7b252017-04-10 10:46:15 -070069 int getLastShutdownReason();
Calin Tatarua3805722018-08-09 16:41:28 +020070 int getLastSleepReason();
Mike Lockwood237a2992009-09-15 14:42:16 -040071
Jeff Brown96307042012-07-27 15:51:34 -070072 void setStayOnSetting(int val);
Jeff Browne333e672014-10-28 13:48:55 -070073 void boostScreenBrightness(long time);
Julius D'souzab22da802017-06-09 10:27:14 -070074
75 // --- deprecated ---
Bryce Lee84d6c0f2015-03-17 10:43:08 -070076 boolean isScreenBrightnessBoosted();
Jeff Brown96307042012-07-27 15:51:34 -070077
Jeff Brown96307042012-07-27 15:51:34 -070078 // sets the attention light (used by phone app only)
Mike Lockwoodb11832d2009-11-25 15:25:55 -050079 void setAttentionLight(boolean on, int color);
Lucas Dupin16cfe452018-02-08 13:14:50 -080080
81 // controls whether PowerManager should doze after the screen turns off or not
82 void setDozeAfterScreenOff(boolean on);
Santos Cordon12f92eb2019-02-01 21:28:47 +000083
84 // Forces the system to suspend even if there are held wakelocks.
85 boolean forceSuspend();
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080086}