1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.app; 18 19 import android.app.ActivityManager; 20 import android.app.ApplicationErrorReport; 21 import android.app.ContentProviderHolder; 22 import android.app.GrantedUriPermission; 23 import android.app.IApplicationThread; 24 import android.app.IActivityController; 25 import android.app.IAppTask; 26 import android.app.IAssistDataReceiver; 27 import android.app.IInstrumentationWatcher; 28 import android.app.IProcessObserver; 29 import android.app.IServiceConnection; 30 import android.app.IStopUserCallback; 31 import android.app.ITaskStackListener; 32 import android.app.IUiAutomationConnection; 33 import android.app.IUidObserver; 34 import android.app.IUserSwitchObserver; 35 import android.app.Notification; 36 import android.app.PendingIntent; 37 import android.app.PictureInPictureParams; 38 import android.app.ProfilerInfo; 39 import android.app.WaitResult; 40 import android.app.assist.AssistContent; 41 import android.app.assist.AssistStructure; 42 import android.content.ComponentName; 43 import android.content.IIntentReceiver; 44 import android.content.IIntentSender; 45 import android.content.Intent; 46 import android.content.IntentFilter; 47 import android.content.IntentSender; 48 import android.content.pm.ApplicationInfo; 49 import android.content.pm.ConfigurationInfo; 50 import android.content.pm.IPackageDataObserver; 51 import android.content.pm.ParceledListSlice; 52 import android.content.pm.ProviderInfo; 53 import android.content.pm.UserInfo; 54 import android.content.res.Configuration; 55 import android.graphics.Bitmap; 56 import android.graphics.GraphicBuffer; 57 import android.graphics.Point; 58 import android.graphics.Rect; 59 import android.net.Uri; 60 import android.os.Bundle; 61 import android.os.Debug; 62 import android.os.IBinder; 63 import android.os.IProgressListener; 64 import android.os.ParcelFileDescriptor; 65 import android.os.PersistableBundle; 66 import android.os.StrictMode; 67 import android.os.WorkSource; 68 import android.service.voice.IVoiceInteractionSession; 69 import android.view.IRecentsAnimationRunner; 70 import android.view.RemoteAnimationDefinition; 71 import android.view.RemoteAnimationAdapter; 72 import com.android.internal.app.IVoiceInteractor; 73 import com.android.internal.os.IResultReceiver; 74 import com.android.internal.policy.IKeyguardDismissCallback; 75 76 import java.util.List; 77 78 /** 79 * System private API for talking with the activity manager service. This 80 * provides calls from the application back to the activity manager. 81 * 82 * {@hide} 83 */ 84 interface IActivityManager { 85 // WARNING: when these transactions are updated, check if they are any callers on the native 86 // side. If so, make sure they are using the correct transaction ids and arguments. 87 // If a transaction which will also be used on the native side is being inserted, add it to 88 // below block of transactions. 89 90 // Since these transactions are also called from native code, these must be kept in sync with 91 // the ones in frameworks/native/libs/binder/include/binder/IActivityManager.h 92 // =============== Beginning of transactions used on native side as well ====================== openContentUri(in String uriString)93 ParcelFileDescriptor openContentUri(in String uriString); registerUidObserver(in IUidObserver observer, int which, int cutpoint, String callingPackage)94 void registerUidObserver(in IUidObserver observer, int which, int cutpoint, 95 String callingPackage); unregisterUidObserver(in IUidObserver observer)96 void unregisterUidObserver(in IUidObserver observer); isUidActive(int uid, String callingPackage)97 boolean isUidActive(int uid, String callingPackage); 98 // =============== End of transactions used on native side as well ============================ 99 100 // Special low-level communication with activity manager. handleApplicationCrash(in IBinder app, in ApplicationErrorReport.ParcelableCrashInfo crashInfo)101 void handleApplicationCrash(in IBinder app, 102 in ApplicationErrorReport.ParcelableCrashInfo crashInfo); startActivity(in IApplicationThread caller, in String callingPackage, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options)103 int startActivity(in IApplicationThread caller, in String callingPackage, in Intent intent, 104 in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, 105 int flags, in ProfilerInfo profilerInfo, in Bundle options); unhandledBack()106 void unhandledBack(); 107 finishActivity(in IBinder token, int code, in Intent data, int finishTask)108 boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask); registerReceiver(in IApplicationThread caller, in String callerPackage, in IIntentReceiver receiver, in IntentFilter filter, in String requiredPermission, int userId, int flags)109 Intent registerReceiver(in IApplicationThread caller, in String callerPackage, 110 in IIntentReceiver receiver, in IntentFilter filter, 111 in String requiredPermission, int userId, int flags); unregisterReceiver(in IIntentReceiver receiver)112 void unregisterReceiver(in IIntentReceiver receiver); broadcastIntent(in IApplicationThread caller, in Intent intent, in String resolvedType, in IIntentReceiver resultTo, int resultCode, in String resultData, in Bundle map, in String[] requiredPermissions, int appOp, in Bundle options, boolean serialized, boolean sticky, int userId)113 int broadcastIntent(in IApplicationThread caller, in Intent intent, 114 in String resolvedType, in IIntentReceiver resultTo, int resultCode, 115 in String resultData, in Bundle map, in String[] requiredPermissions, 116 int appOp, in Bundle options, boolean serialized, boolean sticky, int userId); unbroadcastIntent(in IApplicationThread caller, in Intent intent, int userId)117 void unbroadcastIntent(in IApplicationThread caller, in Intent intent, int userId); finishReceiver(in IBinder who, int resultCode, in String resultData, in Bundle map, boolean abortBroadcast, int flags)118 oneway void finishReceiver(in IBinder who, int resultCode, in String resultData, in Bundle map, 119 boolean abortBroadcast, int flags); attachApplication(in IApplicationThread app, long startSeq)120 void attachApplication(in IApplicationThread app, long startSeq); activityIdle(in IBinder token, in Configuration config, in boolean stopProfiling)121 oneway void activityIdle(in IBinder token, in Configuration config, 122 in boolean stopProfiling); activityPaused(in IBinder token)123 void activityPaused(in IBinder token); activityStopped(in IBinder token, in Bundle state, in PersistableBundle persistentState, in CharSequence description)124 oneway void activityStopped(in IBinder token, in Bundle state, 125 in PersistableBundle persistentState, in CharSequence description); getCallingPackage(in IBinder token)126 String getCallingPackage(in IBinder token); getCallingActivity(in IBinder token)127 ComponentName getCallingActivity(in IBinder token); getTasks(int maxNum)128 List<ActivityManager.RunningTaskInfo> getTasks(int maxNum); getFilteredTasks(int maxNum, int ignoreActivityType, int ignoreWindowingMode)129 List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum, int ignoreActivityType, 130 int ignoreWindowingMode); moveTaskToFront(int task, int flags, in Bundle options)131 void moveTaskToFront(int task, int flags, in Bundle options); moveTaskBackwards(int task)132 void moveTaskBackwards(int task); getTaskForActivity(in IBinder token, in boolean onlyRoot)133 int getTaskForActivity(in IBinder token, in boolean onlyRoot); getContentProvider(in IApplicationThread caller, in String name, int userId, boolean stable)134 ContentProviderHolder getContentProvider(in IApplicationThread caller, 135 in String name, int userId, boolean stable); publishContentProviders(in IApplicationThread caller, in List<ContentProviderHolder> providers)136 void publishContentProviders(in IApplicationThread caller, 137 in List<ContentProviderHolder> providers); refContentProvider(in IBinder connection, int stableDelta, int unstableDelta)138 boolean refContentProvider(in IBinder connection, int stableDelta, int unstableDelta); finishSubActivity(in IBinder token, in String resultWho, int requestCode)139 void finishSubActivity(in IBinder token, in String resultWho, int requestCode); getRunningServiceControlPanel(in ComponentName service)140 PendingIntent getRunningServiceControlPanel(in ComponentName service); startService(in IApplicationThread caller, in Intent service, in String resolvedType, boolean requireForeground, in String callingPackage, int userId)141 ComponentName startService(in IApplicationThread caller, in Intent service, 142 in String resolvedType, boolean requireForeground, in String callingPackage, int userId); stopService(in IApplicationThread caller, in Intent service, in String resolvedType, int userId)143 int stopService(in IApplicationThread caller, in Intent service, 144 in String resolvedType, int userId); bindService(in IApplicationThread caller, in IBinder token, in Intent service, in String resolvedType, in IServiceConnection connection, int flags, in String callingPackage, int userId)145 int bindService(in IApplicationThread caller, in IBinder token, in Intent service, 146 in String resolvedType, in IServiceConnection connection, int flags, 147 in String callingPackage, int userId); unbindService(in IServiceConnection connection)148 boolean unbindService(in IServiceConnection connection); publishService(in IBinder token, in Intent intent, in IBinder service)149 void publishService(in IBinder token, in Intent intent, in IBinder service); activityResumed(in IBinder token)150 void activityResumed(in IBinder token); setDebugApp(in String packageName, boolean waitForDebugger, boolean persistent)151 void setDebugApp(in String packageName, boolean waitForDebugger, boolean persistent); setAgentApp(in String packageName, @nullable String agent)152 void setAgentApp(in String packageName, @nullable String agent); setAlwaysFinish(boolean enabled)153 void setAlwaysFinish(boolean enabled); startInstrumentation(in ComponentName className, in String profileFile, int flags, in Bundle arguments, in IInstrumentationWatcher watcher, in IUiAutomationConnection connection, int userId, in String abiOverride)154 boolean startInstrumentation(in ComponentName className, in String profileFile, 155 int flags, in Bundle arguments, in IInstrumentationWatcher watcher, 156 in IUiAutomationConnection connection, int userId, 157 in String abiOverride); addInstrumentationResults(in IApplicationThread target, in Bundle results)158 void addInstrumentationResults(in IApplicationThread target, in Bundle results); finishInstrumentation(in IApplicationThread target, int resultCode, in Bundle results)159 void finishInstrumentation(in IApplicationThread target, int resultCode, 160 in Bundle results); 161 /** 162 * @return A copy of global {@link Configuration}, contains general settings for the entire 163 * system. Corresponds to the configuration of the default display. 164 * @throws RemoteException 165 */ getConfiguration()166 Configuration getConfiguration(); 167 /** 168 * Updates global configuration and applies changes to the entire system. 169 * @param values Update values for global configuration. If null is passed it will request the 170 * Window Manager to compute new config for the default display. 171 * @throws RemoteException 172 * @return Returns true if the configuration was updated. 173 */ updateConfiguration(in Configuration values)174 boolean updateConfiguration(in Configuration values); stopServiceToken(in ComponentName className, in IBinder token, int startId)175 boolean stopServiceToken(in ComponentName className, in IBinder token, int startId); getActivityClassForToken(in IBinder token)176 ComponentName getActivityClassForToken(in IBinder token); getPackageForToken(in IBinder token)177 String getPackageForToken(in IBinder token); setProcessLimit(int max)178 void setProcessLimit(int max); getProcessLimit()179 int getProcessLimit(); checkPermission(in String permission, int pid, int uid)180 int checkPermission(in String permission, int pid, int uid); checkUriPermission(in Uri uri, int pid, int uid, int mode, int userId, in IBinder callerToken)181 int checkUriPermission(in Uri uri, int pid, int uid, int mode, int userId, 182 in IBinder callerToken); grantUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri, int mode, int userId)183 void grantUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri, 184 int mode, int userId); revokeUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri, int mode, int userId)185 void revokeUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri, 186 int mode, int userId); setActivityController(in IActivityController watcher, boolean imAMonkey)187 void setActivityController(in IActivityController watcher, boolean imAMonkey); showWaitingForDebugger(in IApplicationThread who, boolean waiting)188 void showWaitingForDebugger(in IApplicationThread who, boolean waiting); 189 /* 190 * This will deliver the specified signal to all the persistent processes. Currently only 191 * SIGUSR1 is delivered. All others are ignored. 192 */ signalPersistentProcesses(int signal)193 void signalPersistentProcesses(int signal); 194 getRecentTasks(int maxNum, int flags, int userId)195 ParceledListSlice getRecentTasks(int maxNum, int flags, int userId); serviceDoneExecuting(in IBinder token, int type, int startId, int res)196 oneway void serviceDoneExecuting(in IBinder token, int type, int startId, int res); activityDestroyed(in IBinder token)197 oneway void activityDestroyed(in IBinder token); getIntentSender(int type, in String packageName, in IBinder token, in String resultWho, int requestCode, in Intent[] intents, in String[] resolvedTypes, int flags, in Bundle options, int userId)198 IIntentSender getIntentSender(int type, in String packageName, in IBinder token, 199 in String resultWho, int requestCode, in Intent[] intents, in String[] resolvedTypes, 200 int flags, in Bundle options, int userId); cancelIntentSender(in IIntentSender sender)201 void cancelIntentSender(in IIntentSender sender); getPackageForIntentSender(in IIntentSender sender)202 String getPackageForIntentSender(in IIntentSender sender); registerIntentSenderCancelListener(in IIntentSender sender, in IResultReceiver receiver)203 void registerIntentSenderCancelListener(in IIntentSender sender, in IResultReceiver receiver); unregisterIntentSenderCancelListener(in IIntentSender sender, in IResultReceiver receiver)204 void unregisterIntentSenderCancelListener(in IIntentSender sender, in IResultReceiver receiver); enterSafeMode()205 void enterSafeMode(); startNextMatchingActivity(in IBinder callingActivity, in Intent intent, in Bundle options)206 boolean startNextMatchingActivity(in IBinder callingActivity, 207 in Intent intent, in Bundle options); noteWakeupAlarm(in IIntentSender sender, in WorkSource workSource, int sourceUid, in String sourcePkg, in String tag)208 void noteWakeupAlarm(in IIntentSender sender, in WorkSource workSource, int sourceUid, 209 in String sourcePkg, in String tag); removeContentProvider(in IBinder connection, boolean stable)210 void removeContentProvider(in IBinder connection, boolean stable); setRequestedOrientation(in IBinder token, int requestedOrientation)211 void setRequestedOrientation(in IBinder token, int requestedOrientation); getRequestedOrientation(in IBinder token)212 int getRequestedOrientation(in IBinder token); unbindFinished(in IBinder token, in Intent service, boolean doRebind)213 void unbindFinished(in IBinder token, in Intent service, boolean doRebind); setProcessImportant(in IBinder token, int pid, boolean isForeground, String reason)214 void setProcessImportant(in IBinder token, int pid, boolean isForeground, String reason); setServiceForeground(in ComponentName className, in IBinder token, int id, in Notification notification, int flags)215 void setServiceForeground(in ComponentName className, in IBinder token, 216 int id, in Notification notification, int flags); moveActivityTaskToBack(in IBinder token, boolean nonRoot)217 boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot); getMemoryInfo(out ActivityManager.MemoryInfo outInfo)218 void getMemoryInfo(out ActivityManager.MemoryInfo outInfo); getProcessesInErrorState()219 List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState(); clearApplicationUserData(in String packageName, boolean keepState, in IPackageDataObserver observer, int userId)220 boolean clearApplicationUserData(in String packageName, boolean keepState, 221 in IPackageDataObserver observer, int userId); forceStopPackage(in String packageName, int userId)222 void forceStopPackage(in String packageName, int userId); killPids(in int[] pids, in String reason, boolean secure)223 boolean killPids(in int[] pids, in String reason, boolean secure); getServices(int maxNum, int flags)224 List<ActivityManager.RunningServiceInfo> getServices(int maxNum, int flags); getTaskDescription(int taskId)225 ActivityManager.TaskDescription getTaskDescription(int taskId); 226 // Retrieve running application processes in the system getRunningAppProcesses()227 List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses(); 228 // Get device configuration getDeviceConfigurationInfo()229 ConfigurationInfo getDeviceConfigurationInfo(); peekService(in Intent service, in String resolvedType, in String callingPackage)230 IBinder peekService(in Intent service, in String resolvedType, in String callingPackage); 231 // Turn on/off profiling in a particular process. profileControl(in String process, int userId, boolean start, in ProfilerInfo profilerInfo, int profileType)232 boolean profileControl(in String process, int userId, boolean start, 233 in ProfilerInfo profilerInfo, int profileType); shutdown(int timeout)234 boolean shutdown(int timeout); stopAppSwitches()235 void stopAppSwitches(); resumeAppSwitches()236 void resumeAppSwitches(); bindBackupAgent(in String packageName, int backupRestoreMode, int userId)237 boolean bindBackupAgent(in String packageName, int backupRestoreMode, int userId); backupAgentCreated(in String packageName, in IBinder agent)238 void backupAgentCreated(in String packageName, in IBinder agent); unbindBackupAgent(in ApplicationInfo appInfo)239 void unbindBackupAgent(in ApplicationInfo appInfo); getUidForIntentSender(in IIntentSender sender)240 int getUidForIntentSender(in IIntentSender sender); handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, boolean requireFull, in String name, in String callerPackage)241 int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, 242 boolean requireFull, in String name, in String callerPackage); addPackageDependency(in String packageName)243 void addPackageDependency(in String packageName); killApplication(in String pkg, int appId, int userId, in String reason)244 void killApplication(in String pkg, int appId, int userId, in String reason); closeSystemDialogs(in String reason)245 void closeSystemDialogs(in String reason); getProcessMemoryInfo(in int[] pids)246 Debug.MemoryInfo[] getProcessMemoryInfo(in int[] pids); killApplicationProcess(in String processName, int uid)247 void killApplicationProcess(in String processName, int uid); startActivityIntentSender(in IApplicationThread caller, in IIntentSender target, in IBinder whitelistToken, in Intent fillInIntent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flagsMask, int flagsValues, in Bundle options)248 int startActivityIntentSender(in IApplicationThread caller, 249 in IIntentSender target, in IBinder whitelistToken, in Intent fillInIntent, 250 in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, 251 int flagsMask, int flagsValues, in Bundle options); overridePendingTransition(in IBinder token, in String packageName, int enterAnim, int exitAnim)252 void overridePendingTransition(in IBinder token, in String packageName, 253 int enterAnim, int exitAnim); 254 // Special low-level communication with activity manager. handleApplicationWtf(in IBinder app, in String tag, boolean system, in ApplicationErrorReport.ParcelableCrashInfo crashInfo)255 boolean handleApplicationWtf(in IBinder app, in String tag, boolean system, 256 in ApplicationErrorReport.ParcelableCrashInfo crashInfo); killBackgroundProcesses(in String packageName, int userId)257 void killBackgroundProcesses(in String packageName, int userId); isUserAMonkey()258 boolean isUserAMonkey(); startActivityAndWait(in IApplicationThread caller, in String callingPackage, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, int userId)259 WaitResult startActivityAndWait(in IApplicationThread caller, in String callingPackage, 260 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 261 int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, 262 int userId); willActivityBeVisible(in IBinder token)263 boolean willActivityBeVisible(in IBinder token); startActivityWithConfig(in IApplicationThread caller, in String callingPackage, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int startFlags, in Configuration newConfig, in Bundle options, int userId)264 int startActivityWithConfig(in IApplicationThread caller, in String callingPackage, 265 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 266 int requestCode, int startFlags, in Configuration newConfig, 267 in Bundle options, int userId); 268 // Retrieve info of applications installed on external media that are currently 269 // running. getRunningExternalApplications()270 List<ApplicationInfo> getRunningExternalApplications(); finishHeavyWeightApp()271 void finishHeavyWeightApp(); 272 // A StrictMode violation to be handled. The violationMask is a 273 // subset of the original StrictMode policy bitmask, with only the 274 // bit violated and penalty bits to be executed by the 275 // ActivityManagerService remaining set. handleApplicationStrictModeViolation(in IBinder app, int violationMask, in StrictMode.ViolationInfo crashInfo)276 void handleApplicationStrictModeViolation(in IBinder app, int violationMask, 277 in StrictMode.ViolationInfo crashInfo); isImmersive(in IBinder token)278 boolean isImmersive(in IBinder token); setImmersive(in IBinder token, boolean immersive)279 void setImmersive(in IBinder token, boolean immersive); isTopActivityImmersive()280 boolean isTopActivityImmersive(); crashApplication(int uid, int initialPid, in String packageName, int userId, in String message, boolean force)281 void crashApplication(int uid, int initialPid, in String packageName, int userId, 282 in String message, boolean force); getProviderMimeType(in Uri uri, int userId)283 String getProviderMimeType(in Uri uri, int userId); newUriPermissionOwner(in String name)284 IBinder newUriPermissionOwner(in String name); grantUriPermissionFromOwner(in IBinder owner, int fromUid, in String targetPkg, in Uri uri, int mode, int sourceUserId, int targetUserId)285 void grantUriPermissionFromOwner(in IBinder owner, int fromUid, in String targetPkg, 286 in Uri uri, int mode, int sourceUserId, int targetUserId); revokeUriPermissionFromOwner(in IBinder owner, in Uri uri, int mode, int userId)287 void revokeUriPermissionFromOwner(in IBinder owner, in Uri uri, int mode, int userId); checkGrantUriPermission(int callingUid, in String targetPkg, in Uri uri, int modeFlags, int userId)288 int checkGrantUriPermission(int callingUid, in String targetPkg, in Uri uri, 289 int modeFlags, int userId); 290 // Cause the specified process to dump the specified heap. dumpHeap(in String process, int userId, boolean managed, boolean mallocInfo, boolean runGc, in String path, in ParcelFileDescriptor fd)291 boolean dumpHeap(in String process, int userId, boolean managed, boolean mallocInfo, 292 boolean runGc, in String path, in ParcelFileDescriptor fd); startActivities(in IApplicationThread caller, in String callingPackage, in Intent[] intents, in String[] resolvedTypes, in IBinder resultTo, in Bundle options, int userId)293 int startActivities(in IApplicationThread caller, in String callingPackage, 294 in Intent[] intents, in String[] resolvedTypes, in IBinder resultTo, 295 in Bundle options, int userId); isUserRunning(int userid, int flags)296 boolean isUserRunning(int userid, int flags); activitySlept(in IBinder token)297 oneway void activitySlept(in IBinder token); getFrontActivityScreenCompatMode()298 int getFrontActivityScreenCompatMode(); setFrontActivityScreenCompatMode(int mode)299 void setFrontActivityScreenCompatMode(int mode); getPackageScreenCompatMode(in String packageName)300 int getPackageScreenCompatMode(in String packageName); setPackageScreenCompatMode(in String packageName, int mode)301 void setPackageScreenCompatMode(in String packageName, int mode); getPackageAskScreenCompat(in String packageName)302 boolean getPackageAskScreenCompat(in String packageName); setPackageAskScreenCompat(in String packageName, boolean ask)303 void setPackageAskScreenCompat(in String packageName, boolean ask); switchUser(int userid)304 boolean switchUser(int userid); setFocusedTask(int taskId)305 void setFocusedTask(int taskId); removeTask(int taskId)306 boolean removeTask(int taskId); registerProcessObserver(in IProcessObserver observer)307 void registerProcessObserver(in IProcessObserver observer); unregisterProcessObserver(in IProcessObserver observer)308 void unregisterProcessObserver(in IProcessObserver observer); isIntentSenderTargetedToPackage(in IIntentSender sender)309 boolean isIntentSenderTargetedToPackage(in IIntentSender sender); updatePersistentConfiguration(in Configuration values)310 void updatePersistentConfiguration(in Configuration values); getProcessPss(in int[] pids)311 long[] getProcessPss(in int[] pids); showBootMessage(in CharSequence msg, boolean always)312 void showBootMessage(in CharSequence msg, boolean always); killAllBackgroundProcesses()313 void killAllBackgroundProcesses(); getContentProviderExternal(in String name, int userId, in IBinder token)314 ContentProviderHolder getContentProviderExternal(in String name, int userId, 315 in IBinder token); removeContentProviderExternal(in String name, in IBinder token)316 void removeContentProviderExternal(in String name, in IBinder token); 317 // Get memory information about the calling process. getMyMemoryState(out ActivityManager.RunningAppProcessInfo outInfo)318 void getMyMemoryState(out ActivityManager.RunningAppProcessInfo outInfo); killProcessesBelowForeground(in String reason)319 boolean killProcessesBelowForeground(in String reason); getCurrentUser()320 UserInfo getCurrentUser(); shouldUpRecreateTask(in IBinder token, in String destAffinity)321 boolean shouldUpRecreateTask(in IBinder token, in String destAffinity); navigateUpTo(in IBinder token, in Intent target, int resultCode, in Intent resultData)322 boolean navigateUpTo(in IBinder token, in Intent target, int resultCode, 323 in Intent resultData); 324 /** 325 * Informs ActivityManagerService that the keyguard is showing. 326 * 327 * @param showingKeyguard True if the keyguard is showing, false otherwise. 328 * @param showingAod True if AOD is showing, false otherwise. 329 * @param secondaryDisplayShowing The displayId of the secondary display on which the keyguard 330 * is showing, or INVALID_DISPLAY if there is no such display. Only meaningful if 331 * showing is true. 332 */ setLockScreenShown(boolean showingKeyguard, boolean showingAod, int secondaryDisplayShowing)333 void setLockScreenShown(boolean showingKeyguard, boolean showingAod, 334 int secondaryDisplayShowing); finishActivityAffinity(in IBinder token)335 boolean finishActivityAffinity(in IBinder token); 336 // This is not public because you need to be very careful in how you 337 // manage your activity to make sure it is always the uid you expect. getLaunchedFromUid(in IBinder activityToken)338 int getLaunchedFromUid(in IBinder activityToken); unstableProviderDied(in IBinder connection)339 void unstableProviderDied(in IBinder connection); isIntentSenderAnActivity(in IIntentSender sender)340 boolean isIntentSenderAnActivity(in IIntentSender sender); isIntentSenderAForegroundService(in IIntentSender sender)341 boolean isIntentSenderAForegroundService(in IIntentSender sender); startActivityAsUser(in IApplicationThread caller, in String callingPackage, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, int userId)342 int startActivityAsUser(in IApplicationThread caller, in String callingPackage, 343 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 344 int requestCode, int flags, in ProfilerInfo profilerInfo, 345 in Bundle options, int userId); stopUser(int userid, boolean force, in IStopUserCallback callback)346 int stopUser(int userid, boolean force, in IStopUserCallback callback); registerUserSwitchObserver(in IUserSwitchObserver observer, in String name)347 void registerUserSwitchObserver(in IUserSwitchObserver observer, in String name); unregisterUserSwitchObserver(in IUserSwitchObserver observer)348 void unregisterUserSwitchObserver(in IUserSwitchObserver observer); getRunningUserIds()349 int[] getRunningUserIds(); 350 351 // Deprecated - This method is only used by a few internal components and it will soon be 352 // replaced by a proper bug report API (which will be restricted to a few, pre-defined apps). 353 // No new code should be calling it. requestBugReport(int bugreportType)354 void requestBugReport(int bugreportType); 355 356 /** 357 * Takes a telephony bug report and notifies the user with the title and description 358 * that are passed to this API as parameters 359 * 360 * @param shareTitle should be a valid legible string less than 50 chars long 361 * @param shareDescription should be less than 91 bytes when encoded into UTF-8 format 362 * 363 * @throws IllegalArgumentException if shareTitle or shareDescription is too big or if the 364 * paremeters cannot be encoding to an UTF-8 charset. 365 */ requestTelephonyBugReport(in String shareTitle, in String shareDescription)366 void requestTelephonyBugReport(in String shareTitle, in String shareDescription); 367 368 /** 369 * Deprecated - This method is only used by Wifi, and it will soon be replaced by a proper 370 * bug report API. 371 * 372 * Takes a minimal bugreport of Wifi-related state. 373 * 374 * @param shareTitle should be a valid legible string less than 50 chars long 375 * @param shareDescription should be less than 91 bytes when encoded into UTF-8 format 376 * 377 * @throws IllegalArgumentException if shareTitle or shareDescription is too big or if the 378 * parameters cannot be encoding to an UTF-8 charset. 379 */ requestWifiBugReport(in String shareTitle, in String shareDescription)380 void requestWifiBugReport(in String shareTitle, in String shareDescription); 381 inputDispatchingTimedOut(int pid, boolean aboveSystem, in String reason)382 long inputDispatchingTimedOut(int pid, boolean aboveSystem, in String reason); clearPendingBackup()383 void clearPendingBackup(); getIntentForIntentSender(in IIntentSender sender)384 Intent getIntentForIntentSender(in IIntentSender sender); getAssistContextExtras(int requestType)385 Bundle getAssistContextExtras(int requestType); reportAssistContextExtras(in IBinder token, in Bundle extras, in AssistStructure structure, in AssistContent content, in Uri referrer)386 void reportAssistContextExtras(in IBinder token, in Bundle extras, 387 in AssistStructure structure, in AssistContent content, in Uri referrer); 388 // This is not public because you need to be very careful in how you 389 // manage your activity to make sure it is always the uid you expect. getLaunchedFromPackage(in IBinder activityToken)390 String getLaunchedFromPackage(in IBinder activityToken); killUid(int appId, int userId, in String reason)391 void killUid(int appId, int userId, in String reason); setUserIsMonkey(boolean monkey)392 void setUserIsMonkey(boolean monkey); hang(in IBinder who, boolean allowRestart)393 void hang(in IBinder who, boolean allowRestart); 394 395 /** 396 * Sets the windowing mode for a specific task. Only works on tasks of type 397 * {@link WindowConfiguration#ACTIVITY_TYPE_STANDARD} 398 * @param taskId The id of the task to set the windowing mode for. 399 * @param windowingMode The windowing mode to set for the task. 400 * @param toTop If the task should be moved to the top once the windowing mode changes. 401 */ setTaskWindowingMode(int taskId, int windowingMode, boolean toTop)402 void setTaskWindowingMode(int taskId, int windowingMode, boolean toTop); moveTaskToStack(int taskId, int stackId, boolean toTop)403 void moveTaskToStack(int taskId, int stackId, boolean toTop); 404 /** 405 * Resizes the input stack id to the given bounds. 406 * 407 * @param stackId Id of the stack to resize. 408 * @param bounds Bounds to resize the stack to or {@code null} for fullscreen. 409 * @param allowResizeInDockedMode True if the resize should be allowed when the docked stack is 410 * active. 411 * @param preserveWindows True if the windows of activities contained in the stack should be 412 * preserved. 413 * @param animate True if the stack resize should be animated. 414 * @param animationDuration The duration of the resize animation in milliseconds or -1 if the 415 * default animation duration should be used. 416 * @throws RemoteException 417 */ resizeStack(int stackId, in Rect bounds, boolean allowResizeInDockedMode, boolean preserveWindows, boolean animate, int animationDuration)418 void resizeStack(int stackId, in Rect bounds, boolean allowResizeInDockedMode, 419 boolean preserveWindows, boolean animate, int animationDuration); getAllStackInfos()420 List<ActivityManager.StackInfo> getAllStackInfos(); setFocusedStack(int stackId)421 void setFocusedStack(int stackId); getFocusedStackInfo()422 ActivityManager.StackInfo getFocusedStackInfo(); getStackInfo(int windowingMode, int activityType)423 ActivityManager.StackInfo getStackInfo(int windowingMode, int activityType); convertFromTranslucent(in IBinder token)424 boolean convertFromTranslucent(in IBinder token); convertToTranslucent(in IBinder token, in Bundle options)425 boolean convertToTranslucent(in IBinder token, in Bundle options); notifyActivityDrawn(in IBinder token)426 void notifyActivityDrawn(in IBinder token); reportActivityFullyDrawn(in IBinder token, boolean restoredFromBundle)427 void reportActivityFullyDrawn(in IBinder token, boolean restoredFromBundle); restart()428 void restart(); performIdleMaintenance()429 void performIdleMaintenance(); takePersistableUriPermission(in Uri uri, int modeFlags, String toPackage, int userId)430 void takePersistableUriPermission(in Uri uri, int modeFlags, String toPackage, int userId); releasePersistableUriPermission(in Uri uri, int modeFlags, String toPackage, int userId)431 void releasePersistableUriPermission(in Uri uri, int modeFlags, String toPackage, int userId); getPersistedUriPermissions(in String packageName, boolean incoming)432 ParceledListSlice getPersistedUriPermissions(in String packageName, boolean incoming); appNotRespondingViaProvider(in IBinder connection)433 void appNotRespondingViaProvider(in IBinder connection); getTaskBounds(int taskId)434 Rect getTaskBounds(int taskId); getActivityDisplayId(in IBinder activityToken)435 int getActivityDisplayId(in IBinder activityToken); setProcessMemoryTrimLevel(in String process, int uid, int level)436 boolean setProcessMemoryTrimLevel(in String process, int uid, int level); 437 438 439 // Start of L transactions getTagForIntentSender(in IIntentSender sender, in String prefix)440 String getTagForIntentSender(in IIntentSender sender, in String prefix); startUserInBackground(int userid)441 boolean startUserInBackground(int userid); startLockTaskModeByToken(in IBinder token)442 void startLockTaskModeByToken(in IBinder token); stopLockTaskModeByToken(in IBinder token)443 void stopLockTaskModeByToken(in IBinder token); isInLockTaskMode()444 boolean isInLockTaskMode(); setTaskDescription(in IBinder token, in ActivityManager.TaskDescription values)445 void setTaskDescription(in IBinder token, in ActivityManager.TaskDescription values); startVoiceActivity(in String callingPackage, int callingPid, int callingUid, in Intent intent, in String resolvedType, in IVoiceInteractionSession session, in IVoiceInteractor interactor, int flags, in ProfilerInfo profilerInfo, in Bundle options, int userId)446 int startVoiceActivity(in String callingPackage, int callingPid, int callingUid, 447 in Intent intent, in String resolvedType, in IVoiceInteractionSession session, 448 in IVoiceInteractor interactor, int flags, in ProfilerInfo profilerInfo, 449 in Bundle options, int userId); startAssistantActivity(in String callingPackage, int callingPid, int callingUid, in Intent intent, in String resolvedType, in Bundle options, int userId)450 int startAssistantActivity(in String callingPackage, int callingPid, int callingUid, 451 in Intent intent, in String resolvedType, in Bundle options, int userId); startRecentsActivity(in Intent intent, in IAssistDataReceiver assistDataReceiver, in IRecentsAnimationRunner recentsAnimationRunner)452 void startRecentsActivity(in Intent intent, in IAssistDataReceiver assistDataReceiver, 453 in IRecentsAnimationRunner recentsAnimationRunner); cancelRecentsAnimation(boolean restoreHomeStackPosition)454 void cancelRecentsAnimation(boolean restoreHomeStackPosition); startActivityFromRecents(int taskId, in Bundle options)455 int startActivityFromRecents(int taskId, in Bundle options); getActivityOptions(in IBinder token)456 Bundle getActivityOptions(in IBinder token); getAppTasks(in String callingPackage)457 List<IBinder> getAppTasks(in String callingPackage); startSystemLockTaskMode(int taskId)458 void startSystemLockTaskMode(int taskId); stopSystemLockTaskMode()459 void stopSystemLockTaskMode(); finishVoiceTask(in IVoiceInteractionSession session)460 void finishVoiceTask(in IVoiceInteractionSession session); isTopOfTask(in IBinder token)461 boolean isTopOfTask(in IBinder token); notifyLaunchTaskBehindComplete(in IBinder token)462 void notifyLaunchTaskBehindComplete(in IBinder token); notifyEnterAnimationComplete(in IBinder token)463 void notifyEnterAnimationComplete(in IBinder token); startActivityAsCaller(in IApplicationThread caller, in String callingPackage, in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, boolean ignoreTargetSecurity, int userId)464 int startActivityAsCaller(in IApplicationThread caller, in String callingPackage, 465 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 466 int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, 467 boolean ignoreTargetSecurity, int userId); addAppTask(in IBinder activityToken, in Intent intent, in ActivityManager.TaskDescription description, in Bitmap thumbnail)468 int addAppTask(in IBinder activityToken, in Intent intent, 469 in ActivityManager.TaskDescription description, in Bitmap thumbnail); getAppTaskThumbnailSize()470 Point getAppTaskThumbnailSize(); releaseActivityInstance(in IBinder token)471 boolean releaseActivityInstance(in IBinder token); releaseSomeActivities(in IApplicationThread app)472 void releaseSomeActivities(in IApplicationThread app); bootAnimationComplete()473 void bootAnimationComplete(); getTaskDescriptionIcon(in String filename, int userId)474 Bitmap getTaskDescriptionIcon(in String filename, int userId); launchAssistIntent(in Intent intent, int requestType, in String hint, int userHandle, in Bundle args)475 boolean launchAssistIntent(in Intent intent, int requestType, in String hint, int userHandle, 476 in Bundle args); startInPlaceAnimationOnFrontMostApplication(in Bundle opts)477 void startInPlaceAnimationOnFrontMostApplication(in Bundle opts); checkPermissionWithToken(in String permission, int pid, int uid, in IBinder callerToken)478 int checkPermissionWithToken(in String permission, int pid, int uid, 479 in IBinder callerToken); registerTaskStackListener(in ITaskStackListener listener)480 void registerTaskStackListener(in ITaskStackListener listener); unregisterTaskStackListener(in ITaskStackListener listener)481 void unregisterTaskStackListener(in ITaskStackListener listener); 482 notifyCleartextNetwork(int uid, in byte[] firstPacket)483 void notifyCleartextNetwork(int uid, in byte[] firstPacket); createStackOnDisplay(int displayId)484 int createStackOnDisplay(int displayId); setTaskResizeable(int taskId, int resizeableMode)485 void setTaskResizeable(int taskId, int resizeableMode); requestAssistContextExtras(int requestType, in IAssistDataReceiver receiver, in Bundle receiverExtras, in IBinder activityToken, boolean focused, boolean newSessionId)486 boolean requestAssistContextExtras(int requestType, in IAssistDataReceiver receiver, 487 in Bundle receiverExtras, in IBinder activityToken, 488 boolean focused, boolean newSessionId); resizeTask(int taskId, in Rect bounds, int resizeMode)489 void resizeTask(int taskId, in Rect bounds, int resizeMode); getLockTaskModeState()490 int getLockTaskModeState(); setDumpHeapDebugLimit(in String processName, int uid, long maxMemSize, in String reportPackage)491 void setDumpHeapDebugLimit(in String processName, int uid, long maxMemSize, 492 in String reportPackage); dumpHeapFinished(in String path)493 void dumpHeapFinished(in String path); setVoiceKeepAwake(in IVoiceInteractionSession session, boolean keepAwake)494 void setVoiceKeepAwake(in IVoiceInteractionSession session, boolean keepAwake); updateLockTaskPackages(int userId, in String[] packages)495 void updateLockTaskPackages(int userId, in String[] packages); noteAlarmStart(in IIntentSender sender, in WorkSource workSource, int sourceUid, in String tag)496 void noteAlarmStart(in IIntentSender sender, in WorkSource workSource, int sourceUid, in String tag); noteAlarmFinish(in IIntentSender sender, in WorkSource workSource, int sourceUid, in String tag)497 void noteAlarmFinish(in IIntentSender sender, in WorkSource workSource, int sourceUid, in String tag); getPackageProcessState(in String packageName, in String callingPackage)498 int getPackageProcessState(in String packageName, in String callingPackage); showLockTaskEscapeMessage(in IBinder token)499 oneway void showLockTaskEscapeMessage(in IBinder token); updateDeviceOwner(in String packageName)500 void updateDeviceOwner(in String packageName); 501 /** 502 * Notify the system that the keyguard is going away. 503 * 504 * @param flags See {@link android.view.WindowManagerPolicyConstants#KEYGUARD_GOING_AWAY_FLAG_TO_SHADE} 505 * etc. 506 */ keyguardGoingAway(int flags)507 void keyguardGoingAway(int flags); getUidProcessState(int uid, in String callingPackage)508 int getUidProcessState(int uid, in String callingPackage); isAssistDataAllowedOnCurrentActivity()509 boolean isAssistDataAllowedOnCurrentActivity(); showAssistFromActivity(in IBinder token, in Bundle args)510 boolean showAssistFromActivity(in IBinder token, in Bundle args); isRootVoiceInteraction(in IBinder token)511 boolean isRootVoiceInteraction(in IBinder token); 512 513 514 // Start of N transactions 515 // Start Binder transaction tracking for all applications. startBinderTracking()516 boolean startBinderTracking(); 517 // Stop Binder transaction tracking for all applications and dump trace data to the given file 518 // descriptor. stopBinderTrackingAndDump(in ParcelFileDescriptor fd)519 boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd); 520 /** 521 * Try to place task to provided position. The final position might be different depending on 522 * current user and stacks state. The task will be moved to target stack if it's currently in 523 * different stack. 524 */ positionTaskInStack(int taskId, int stackId, int position)525 void positionTaskInStack(int taskId, int stackId, int position); exitFreeformMode(in IBinder token)526 void exitFreeformMode(in IBinder token); reportSizeConfigurations(in IBinder token, in int[] horizontalSizeConfiguration, in int[] verticalSizeConfigurations, in int[] smallestWidthConfigurations)527 void reportSizeConfigurations(in IBinder token, in int[] horizontalSizeConfiguration, 528 in int[] verticalSizeConfigurations, in int[] smallestWidthConfigurations); setTaskWindowingModeSplitScreenPrimary(int taskId, int createMode, boolean toTop, boolean animate, in Rect initialBounds, boolean showRecents)529 boolean setTaskWindowingModeSplitScreenPrimary(int taskId, int createMode, boolean toTop, 530 boolean animate, in Rect initialBounds, boolean showRecents); 531 /** 532 * Dismisses split-screen multi-window mode. 533 * {@param toTop} If true the current primary split-screen stack will be placed or left on top. 534 */ dismissSplitScreenMode(boolean toTop)535 void dismissSplitScreenMode(boolean toTop); 536 /** 537 * Dismisses PiP 538 * @param animate True if the dismissal should be animated. 539 * @param animationDuration The duration of the resize animation in milliseconds or -1 if the 540 * default animation duration should be used. 541 */ dismissPip(boolean animate, int animationDuration)542 void dismissPip(boolean animate, int animationDuration); suppressResizeConfigChanges(boolean suppress)543 void suppressResizeConfigChanges(boolean suppress); moveTasksToFullscreenStack(int fromStackId, boolean onTop)544 void moveTasksToFullscreenStack(int fromStackId, boolean onTop); moveTopActivityToPinnedStack(int stackId, in Rect bounds)545 boolean moveTopActivityToPinnedStack(int stackId, in Rect bounds); isAppStartModeDisabled(int uid, in String packageName)546 boolean isAppStartModeDisabled(int uid, in String packageName); unlockUser(int userid, in byte[] token, in byte[] secret, in IProgressListener listener)547 boolean unlockUser(int userid, in byte[] token, in byte[] secret, 548 in IProgressListener listener); isInMultiWindowMode(in IBinder token)549 boolean isInMultiWindowMode(in IBinder token); isInPictureInPictureMode(in IBinder token)550 boolean isInPictureInPictureMode(in IBinder token); killPackageDependents(in String packageName, int userId)551 void killPackageDependents(in String packageName, int userId); enterPictureInPictureMode(in IBinder token, in PictureInPictureParams params)552 boolean enterPictureInPictureMode(in IBinder token, in PictureInPictureParams params); setPictureInPictureParams(in IBinder token, in PictureInPictureParams params)553 void setPictureInPictureParams(in IBinder token, in PictureInPictureParams params); getMaxNumPictureInPictureActions(in IBinder token)554 int getMaxNumPictureInPictureActions(in IBinder token); activityRelaunched(in IBinder token)555 void activityRelaunched(in IBinder token); getUriPermissionOwnerForActivity(in IBinder activityToken)556 IBinder getUriPermissionOwnerForActivity(in IBinder activityToken); 557 /** 558 * Resizes the docked stack, and all other stacks as the result of the dock stack bounds change. 559 * 560 * @param dockedBounds The bounds for the docked stack. 561 * @param tempDockedTaskBounds The temporary bounds for the tasks in the docked stack, which 562 * might be different from the stack bounds to allow more 563 * flexibility while resizing, or {@code null} if they should be the 564 * same as the stack bounds. 565 * @param tempDockedTaskInsetBounds The temporary bounds for the tasks to calculate the insets. 566 * When resizing, we usually "freeze" the layout of a task. To 567 * achieve that, we also need to "freeze" the insets, which 568 * gets achieved by changing task bounds but not bounds used 569 * to calculate the insets in this transient state 570 * @param tempOtherTaskBounds The temporary bounds for the tasks in all other stacks, or 571 * {@code null} if they should be the same as the stack bounds. 572 * @param tempOtherTaskInsetBounds Like {@code tempDockedTaskInsetBounds}, but for the other 573 * stacks. 574 * @throws RemoteException 575 */ resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, in Rect tempDockedTaskInsetBounds, in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds)576 void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, 577 in Rect tempDockedTaskInsetBounds, 578 in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds); 579 /** 580 * Sets whether we are currently in an interactive split screen resize operation where we 581 * are changing the docked stack size. 582 */ setSplitScreenResizing(boolean resizing)583 void setSplitScreenResizing(boolean resizing); setVrMode(in IBinder token, boolean enabled, in ComponentName packageName)584 int setVrMode(in IBinder token, boolean enabled, in ComponentName packageName); 585 // Gets the URI permissions granted to an arbitrary package (or all packages if null) 586 // NOTE: this is different from getPersistedUriPermissions(), which returns the URIs the package 587 // granted to another packages (instead of those granted to it). getGrantedUriPermissions(in String packageName, int userId)588 ParceledListSlice getGrantedUriPermissions(in String packageName, int userId); 589 // Clears the URI permissions granted to an arbitrary package. clearGrantedUriPermissions(in String packageName, int userId)590 void clearGrantedUriPermissions(in String packageName, int userId); isAppForeground(int uid)591 boolean isAppForeground(int uid); startLocalVoiceInteraction(in IBinder token, in Bundle options)592 void startLocalVoiceInteraction(in IBinder token, in Bundle options); stopLocalVoiceInteraction(in IBinder token)593 void stopLocalVoiceInteraction(in IBinder token); supportsLocalVoiceInteraction()594 boolean supportsLocalVoiceInteraction(); notifyPinnedStackAnimationStarted()595 void notifyPinnedStackAnimationStarted(); notifyPinnedStackAnimationEnded()596 void notifyPinnedStackAnimationEnded(); removeStack(int stackId)597 void removeStack(int stackId); 598 /** 599 * Removes stacks in the input windowing modes from the system if they are of activity type 600 * ACTIVITY_TYPE_STANDARD or ACTIVITY_TYPE_UNDEFINED 601 */ removeStacksInWindowingModes(in int[] windowingModes)602 void removeStacksInWindowingModes(in int[] windowingModes); 603 /** Removes stack of the activity types from the system. */ removeStacksWithActivityTypes(in int[] activityTypes)604 void removeStacksWithActivityTypes(in int[] activityTypes); makePackageIdle(String packageName, int userId)605 void makePackageIdle(String packageName, int userId); getMemoryTrimLevel()606 int getMemoryTrimLevel(); 607 /** 608 * Resizes the pinned stack. 609 * 610 * @param pinnedBounds The bounds for the pinned stack. 611 * @param tempPinnedTaskBounds The temporary bounds for the tasks in the pinned stack, which 612 * might be different from the stack bounds to allow more 613 * flexibility while resizing, or {@code null} if they should be the 614 * same as the stack bounds. 615 */ resizePinnedStack(in Rect pinnedBounds, in Rect tempPinnedTaskBounds)616 void resizePinnedStack(in Rect pinnedBounds, in Rect tempPinnedTaskBounds); isVrModePackageEnabled(in ComponentName packageName)617 boolean isVrModePackageEnabled(in ComponentName packageName); notifyLockedProfile(int userId)618 void notifyLockedProfile(int userId); startConfirmDeviceCredentialIntent(in Intent intent, in Bundle options)619 void startConfirmDeviceCredentialIntent(in Intent intent, in Bundle options); sendIdleJobTrigger()620 void sendIdleJobTrigger(); sendIntentSender(in IIntentSender target, in IBinder whitelistToken, int code, in Intent intent, in String resolvedType, in IIntentReceiver finishedReceiver, in String requiredPermission, in Bundle options)621 int sendIntentSender(in IIntentSender target, in IBinder whitelistToken, int code, 622 in Intent intent, in String resolvedType, in IIntentReceiver finishedReceiver, 623 in String requiredPermission, in Bundle options); isBackgroundRestricted(in String packageName)624 boolean isBackgroundRestricted(in String packageName); 625 626 // Start of N MR1 transactions setVrThread(int tid)627 void setVrThread(int tid); setRenderThread(int tid)628 void setRenderThread(int tid); 629 /** 630 * Lets activity manager know whether the calling process is currently showing "top-level" UI 631 * that is not an activity, i.e. windows on the screen the user is currently interacting with. 632 * 633 * <p>This flag can only be set for persistent processes. 634 * 635 * @param hasTopUi Whether the calling process has "top-level" UI. 636 */ setHasTopUi(boolean hasTopUi)637 void setHasTopUi(boolean hasTopUi); 638 639 // Start of O transactions 640 /** 641 * Updates override configuration applied to specific display. 642 * @param values Update values for display configuration. If null is passed it will request the 643 * Window Manager to compute new config for the specified display. 644 * @param displayId Id of the display to apply the config to. 645 * @throws RemoteException 646 * @return Returns true if the configuration was updated. 647 */ updateDisplayOverrideConfiguration(in Configuration values, int displayId)648 boolean updateDisplayOverrideConfiguration(in Configuration values, int displayId); moveStackToDisplay(int stackId, int displayId)649 void moveStackToDisplay(int stackId, int displayId); requestAutofillData(in IAssistDataReceiver receiver, in Bundle receiverExtras, in IBinder activityToken, int flags)650 boolean requestAutofillData(in IAssistDataReceiver receiver, in Bundle receiverExtras, 651 in IBinder activityToken, int flags); dismissKeyguard(in IBinder token, in IKeyguardDismissCallback callback, in CharSequence message)652 void dismissKeyguard(in IBinder token, in IKeyguardDismissCallback callback, 653 in CharSequence message); restartUserInBackground(int userId)654 int restartUserInBackground(int userId); 655 656 /** Cancels the window transitions for the given task. */ cancelTaskWindowTransition(int taskId)657 void cancelTaskWindowTransition(int taskId); 658 659 /** 660 * @param taskId the id of the task to retrieve the sAutoapshots for 661 * @param reducedResolution if set, if the snapshot needs to be loaded from disk, this will load 662 * a reduced resolution of it, which is much faster 663 * @return a graphic buffer representing a screenshot of a task 664 */ getTaskSnapshot(int taskId, boolean reducedResolution)665 ActivityManager.TaskSnapshot getTaskSnapshot(int taskId, boolean reducedResolution); 666 scheduleApplicationInfoChanged(in List<String> packageNames, int userId)667 void scheduleApplicationInfoChanged(in List<String> packageNames, int userId); setPersistentVrThread(int tid)668