• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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     void setPersistentVrThread(int tid);
669 
waitForNetworkStateUpdate(long procStateSeq)670     void waitForNetworkStateUpdate(long procStateSeq);
671 
672     /**
673      * See {@link android.app.Activity#setDisablePreviewScreenshots}
674      */
setDisablePreviewScreenshots(IBinder token, boolean disable)675     void setDisablePreviewScreenshots(IBinder token, boolean disable);
676 
677     /**
678      * Return the user id of last resumed activity.
679      */
getLastResumedActivityUserId()680     int getLastResumedActivityUserId();
681 
682     /**
683      * Add a bare uid to the background restrictions whitelist.  Only the system uid may call this.
684      */
backgroundWhitelistUid(int uid)685     void backgroundWhitelistUid(int uid);
686 
687     // Start of P transactions
updateLockTaskFeatures(int userId, int flags)688     void updateLockTaskFeatures(int userId, int flags);
689 
690     // WARNING: when these transactions are updated, check if they are any callers on the native
691     // side. If so, make sure they are using the correct transaction ids and arguments.
692     // If a transaction which will also be used on the native side is being inserted, add it
693     // alongside with other transactions of this kind at the top of this file.
694 
setShowWhenLocked(in IBinder token, boolean showWhenLocked)695     void setShowWhenLocked(in IBinder token, boolean showWhenLocked);
setTurnScreenOn(in IBinder token, boolean turnScreenOn)696     void setTurnScreenOn(in IBinder token, boolean turnScreenOn);
697 
698     /**
699      *  Similar to {@link #startUserInBackground(int userId), but with a listener to report
700      *  user unlock progress.
701      */
startUserInBackgroundWithListener(int userid, IProgressListener unlockProgressListener)702     boolean startUserInBackgroundWithListener(int userid, IProgressListener unlockProgressListener);
703 
704     /**
705      * Registers remote animations for a specific activity.
706      */
registerRemoteAnimations(in IBinder token, in RemoteAnimationDefinition definition)707     void registerRemoteAnimations(in IBinder token, in RemoteAnimationDefinition definition);
708 
709     /**
710      * Registers a remote animation to be run for all activity starts from a certain package during
711      * a short predefined amount of time.
712      */
registerRemoteAnimationForNextActivityStart(in String packageName, in RemoteAnimationAdapter adapter)713     void registerRemoteAnimationForNextActivityStart(in String packageName,
714            in RemoteAnimationAdapter adapter);
715 
716     /** @see android.app.ActivityManager#alwaysShowUnsupportedCompileSdkWarning */
alwaysShowUnsupportedCompileSdkWarning(in ComponentName activity)717     void alwaysShowUnsupportedCompileSdkWarning(in ComponentName activity);
718 }
719