• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2006 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.content.ComponentName;
20 import android.content.ContentProviderNative;
21 import android.content.IContentProvider;
22 import android.content.IIntentReceiver;
23 import android.content.IIntentSender;
24 import android.content.Intent;
25 import android.content.IntentFilter;
26 import android.content.IntentSender;
27 import android.content.pm.ApplicationInfo;
28 import android.content.pm.ConfigurationInfo;
29 import android.content.pm.IPackageDataObserver;
30 import android.content.pm.ProviderInfo;
31 import android.content.res.Configuration;
32 import android.graphics.Bitmap;
33 import android.net.Uri;
34 import android.os.Bundle;
35 import android.os.Debug;
36 import android.os.IBinder;
37 import android.os.IInterface;
38 import android.os.Parcel;
39 import android.os.ParcelFileDescriptor;
40 import android.os.Parcelable;
41 import android.os.RemoteException;
42 import android.os.StrictMode;
43 
44 import java.util.List;
45 
46 /**
47  * System private API for talking with the activity manager service.  This
48  * provides calls from the application back to the activity manager.
49  *
50  * {@hide}
51  */
52 public interface IActivityManager extends IInterface {
53     /**
54      * Returned by startActivity() if the start request was canceled because
55      * app switches are temporarily canceled to ensure the user's last request
56      * (such as pressing home) is performed.
57      */
58     public static final int START_SWITCHES_CANCELED = 4;
59     /**
60      * Returned by startActivity() if an activity wasn't really started, but
61      * the given Intent was given to the existing top activity.
62      */
63     public static final int START_DELIVERED_TO_TOP = 3;
64     /**
65      * Returned by startActivity() if an activity wasn't really started, but
66      * a task was simply brought to the foreground.
67      */
68     public static final int START_TASK_TO_FRONT = 2;
69     /**
70      * Returned by startActivity() if the caller asked that the Intent not
71      * be executed if it is the recipient, and that is indeed the case.
72      */
73     public static final int START_RETURN_INTENT_TO_CALLER = 1;
74     /**
75      * Activity was started successfully as normal.
76      */
77     public static final int START_SUCCESS = 0;
78     public static final int START_INTENT_NOT_RESOLVED = -1;
79     public static final int START_CLASS_NOT_FOUND = -2;
80     public static final int START_FORWARD_AND_REQUEST_CONFLICT = -3;
81     public static final int START_PERMISSION_DENIED = -4;
82     public static final int START_NOT_ACTIVITY = -5;
83     public static final int START_CANCELED = -6;
startActivity(IApplicationThread caller, Intent intent, String resolvedType, Uri[] grantedUriPermissions, int grantedMode, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded, boolean debug)84     public int startActivity(IApplicationThread caller,
85             Intent intent, String resolvedType, Uri[] grantedUriPermissions,
86             int grantedMode, IBinder resultTo, String resultWho, int requestCode,
87             boolean onlyIfNeeded, boolean debug) throws RemoteException;
startActivityAndWait(IApplicationThread caller, Intent intent, String resolvedType, Uri[] grantedUriPermissions, int grantedMode, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded, boolean debug)88     public WaitResult startActivityAndWait(IApplicationThread caller,
89             Intent intent, String resolvedType, Uri[] grantedUriPermissions,
90             int grantedMode, IBinder resultTo, String resultWho, int requestCode,
91             boolean onlyIfNeeded, boolean debug) throws RemoteException;
startActivityWithConfig(IApplicationThread caller, Intent intent, String resolvedType, Uri[] grantedUriPermissions, int grantedMode, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded, boolean debug, Configuration newConfig)92     public int startActivityWithConfig(IApplicationThread caller,
93             Intent intent, String resolvedType, Uri[] grantedUriPermissions,
94             int grantedMode, IBinder resultTo, String resultWho, int requestCode,
95             boolean onlyIfNeeded, boolean debug, Configuration newConfig) throws RemoteException;
startActivityIntentSender(IApplicationThread caller, IntentSender intent, Intent fillInIntent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int flagsMask, int flagsValues)96     public int startActivityIntentSender(IApplicationThread caller,
97             IntentSender intent, Intent fillInIntent, String resolvedType,
98             IBinder resultTo, String resultWho, int requestCode,
99             int flagsMask, int flagsValues) throws RemoteException;
startNextMatchingActivity(IBinder callingActivity, Intent intent)100     public boolean startNextMatchingActivity(IBinder callingActivity,
101             Intent intent) throws RemoteException;
finishActivity(IBinder token, int code, Intent data)102     public boolean finishActivity(IBinder token, int code, Intent data)
103             throws RemoteException;
finishSubActivity(IBinder token, String resultWho, int requestCode)104     public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException;
willActivityBeVisible(IBinder token)105     public boolean willActivityBeVisible(IBinder token) throws RemoteException;
registerReceiver(IApplicationThread caller, IIntentReceiver receiver, IntentFilter filter, String requiredPermission)106     public Intent registerReceiver(IApplicationThread caller,
107             IIntentReceiver receiver, IntentFilter filter,
108             String requiredPermission) throws RemoteException;
unregisterReceiver(IIntentReceiver receiver)109     public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException;
110     public static final int BROADCAST_SUCCESS = 0;
111     public static final int BROADCAST_STICKY_CANT_HAVE_PERMISSION = -1;
broadcastIntent(IApplicationThread caller, Intent intent, String resolvedType, IIntentReceiver resultTo, int resultCode, String resultData, Bundle map, String requiredPermission, boolean serialized, boolean sticky)112     public int broadcastIntent(IApplicationThread caller, Intent intent,
113             String resolvedType, IIntentReceiver resultTo, int resultCode,
114             String resultData, Bundle map, String requiredPermission,
115             boolean serialized, boolean sticky) throws RemoteException;
unbroadcastIntent(IApplicationThread caller, Intent intent)116     public void unbroadcastIntent(IApplicationThread caller, Intent intent) throws RemoteException;
117     /* oneway */
finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast)118     public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException;
attachApplication(IApplicationThread app)119     public void attachApplication(IApplicationThread app) throws RemoteException;
120     /* oneway */
activityIdle(IBinder token, Configuration config)121     public void activityIdle(IBinder token, Configuration config) throws RemoteException;
activityPaused(IBinder token, Bundle state)122     public void activityPaused(IBinder token, Bundle state) throws RemoteException;
123     /* oneway */
activityStopped(IBinder token, Bitmap thumbnail, CharSequence description)124     public void activityStopped(IBinder token,
125                                 Bitmap thumbnail, CharSequence description) throws RemoteException;
126     /* oneway */
activityDestroyed(IBinder token)127     public void activityDestroyed(IBinder token) throws RemoteException;
getCallingPackage(IBinder token)128     public String getCallingPackage(IBinder token) throws RemoteException;
getCallingActivity(IBinder token)129     public ComponentName getCallingActivity(IBinder token) throws RemoteException;
getTasks(int maxNum, int flags, IThumbnailReceiver receiver)130     public List getTasks(int maxNum, int flags,
131                          IThumbnailReceiver receiver) throws RemoteException;
getRecentTasks(int maxNum, int flags)132     public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
133             int flags) throws RemoteException;
getServices(int maxNum, int flags)134     public List getServices(int maxNum, int flags) throws RemoteException;
getProcessesInErrorState()135     public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState()
136             throws RemoteException;
moveTaskToFront(int task)137     public void moveTaskToFront(int task) throws RemoteException;
moveTaskToBack(int task)138     public void moveTaskToBack(int task) throws RemoteException;
moveActivityTaskToBack(IBinder token, boolean nonRoot)139     public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) throws RemoteException;
moveTaskBackwards(int task)140     public void moveTaskBackwards(int task) throws RemoteException;
getTaskForActivity(IBinder token, boolean onlyRoot)141     public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException;
finishOtherInstances(IBinder token, ComponentName className)142     public void finishOtherInstances(IBinder token, ComponentName className) throws RemoteException;
143     /* oneway */
reportThumbnail(IBinder token, Bitmap thumbnail, CharSequence description)144     public void reportThumbnail(IBinder token,
145             Bitmap thumbnail, CharSequence description) throws RemoteException;
getContentProvider(IApplicationThread caller, String name)146     public ContentProviderHolder getContentProvider(IApplicationThread caller,
147             String name) throws RemoteException;
removeContentProvider(IApplicationThread caller, String name)148     public void removeContentProvider(IApplicationThread caller,
149             String name) throws RemoteException;
publishContentProviders(IApplicationThread caller, List<ContentProviderHolder> providers)150     public void publishContentProviders(IApplicationThread caller,
151             List<ContentProviderHolder> providers) throws RemoteException;
getRunningServiceControlPanel(ComponentName service)152     public PendingIntent getRunningServiceControlPanel(ComponentName service)
153             throws RemoteException;
startService(IApplicationThread caller, Intent service, String resolvedType)154     public ComponentName startService(IApplicationThread caller, Intent service,
155             String resolvedType) throws RemoteException;
stopService(IApplicationThread caller, Intent service, String resolvedType)156     public int stopService(IApplicationThread caller, Intent service,
157             String resolvedType) throws RemoteException;
stopServiceToken(ComponentName className, IBinder token, int startId)158     public boolean stopServiceToken(ComponentName className, IBinder token,
159             int startId) throws RemoteException;
setServiceForeground(ComponentName className, IBinder token, int id, Notification notification, boolean keepNotification)160     public void setServiceForeground(ComponentName className, IBinder token,
161             int id, Notification notification, boolean keepNotification) throws RemoteException;
bindService(IApplicationThread caller, IBinder token, Intent service, String resolvedType, IServiceConnection connection, int flags)162     public int bindService(IApplicationThread caller, IBinder token,
163             Intent service, String resolvedType,
164             IServiceConnection connection, int flags) throws RemoteException;
unbindService(IServiceConnection connection)165     public boolean unbindService(IServiceConnection connection) throws RemoteException;
publishService(IBinder token, Intent intent, IBinder service)166     public void publishService(IBinder token,
167             Intent intent, IBinder service) throws RemoteException;
unbindFinished(IBinder token, Intent service, boolean doRebind)168     public void unbindFinished(IBinder token, Intent service,
169             boolean doRebind) throws RemoteException;
170     /* oneway */
serviceDoneExecuting(IBinder token, int type, int startId, int res)171     public void serviceDoneExecuting(IBinder token, int type, int startId,
172             int res) throws RemoteException;
peekService(Intent service, String resolvedType)173     public IBinder peekService(Intent service, String resolvedType) throws RemoteException;
174 
bindBackupAgent(ApplicationInfo appInfo, int backupRestoreMode)175     public boolean bindBackupAgent(ApplicationInfo appInfo, int backupRestoreMode)
176             throws RemoteException;
backupAgentCreated(String packageName, IBinder agent)177     public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException;
unbindBackupAgent(ApplicationInfo appInfo)178     public void unbindBackupAgent(ApplicationInfo appInfo) throws RemoteException;
killApplicationProcess(String processName, int uid)179     public void killApplicationProcess(String processName, int uid) throws RemoteException;
180 
startInstrumentation(ComponentName className, String profileFile, int flags, Bundle arguments, IInstrumentationWatcher watcher)181     public boolean startInstrumentation(ComponentName className, String profileFile,
182             int flags, Bundle arguments, IInstrumentationWatcher watcher)
183             throws RemoteException;
finishInstrumentation(IApplicationThread target, int resultCode, Bundle results)184     public void finishInstrumentation(IApplicationThread target,
185             int resultCode, Bundle results) throws RemoteException;
186 
getConfiguration()187     public Configuration getConfiguration() throws RemoteException;
updateConfiguration(Configuration values)188     public void updateConfiguration(Configuration values) throws RemoteException;
setRequestedOrientation(IBinder token, int requestedOrientation)189     public void setRequestedOrientation(IBinder token,
190             int requestedOrientation) throws RemoteException;
getRequestedOrientation(IBinder token)191     public int getRequestedOrientation(IBinder token) throws RemoteException;
192 
getActivityClassForToken(IBinder token)193     public ComponentName getActivityClassForToken(IBinder token) throws RemoteException;
getPackageForToken(IBinder token)194     public String getPackageForToken(IBinder token) throws RemoteException;
195 
196     public static final int INTENT_SENDER_BROADCAST = 1;
197     public static final int INTENT_SENDER_ACTIVITY = 2;
198     public static final int INTENT_SENDER_ACTIVITY_RESULT = 3;
199     public static final int INTENT_SENDER_SERVICE = 4;
getIntentSender(int type, String packageName, IBinder token, String resultWho, int requestCode, Intent intent, String resolvedType, int flags)200     public IIntentSender getIntentSender(int type,
201             String packageName, IBinder token, String resultWho,
202             int requestCode, Intent intent, String resolvedType, int flags) throws RemoteException;
cancelIntentSender(IIntentSender sender)203     public void cancelIntentSender(IIntentSender sender) throws RemoteException;
clearApplicationUserData(final String packageName, final IPackageDataObserver observer)204     public boolean clearApplicationUserData(final String packageName,
205             final IPackageDataObserver observer) throws RemoteException;
getPackageForIntentSender(IIntentSender sender)206     public String getPackageForIntentSender(IIntentSender sender) throws RemoteException;
207 
setProcessLimit(int max)208     public void setProcessLimit(int max) throws RemoteException;
getProcessLimit()209     public int getProcessLimit() throws RemoteException;
210 
setProcessForeground(IBinder token, int pid, boolean isForeground)211     public void setProcessForeground(IBinder token, int pid, boolean isForeground) throws RemoteException;
212 
checkPermission(String permission, int pid, int uid)213     public int checkPermission(String permission, int pid, int uid)
214             throws RemoteException;
215 
checkUriPermission(Uri uri, int pid, int uid, int mode)216     public int checkUriPermission(Uri uri, int pid, int uid, int mode)
217             throws RemoteException;
grantUriPermission(IApplicationThread caller, String targetPkg, Uri uri, int mode)218     public void grantUriPermission(IApplicationThread caller, String targetPkg,
219             Uri uri, int mode) throws RemoteException;
revokeUriPermission(IApplicationThread caller, Uri uri, int mode)220     public void revokeUriPermission(IApplicationThread caller, Uri uri,
221             int mode) throws RemoteException;
222 
showWaitingForDebugger(IApplicationThread who, boolean waiting)223     public void showWaitingForDebugger(IApplicationThread who, boolean waiting)
224             throws RemoteException;
225 
getMemoryInfo(ActivityManager.MemoryInfo outInfo)226     public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException;
227 
killBackgroundProcesses(final String packageName)228     public void killBackgroundProcesses(final String packageName) throws RemoteException;
forceStopPackage(final String packageName)229     public void forceStopPackage(final String packageName) throws RemoteException;
230 
231     // Note: probably don't want to allow applications access to these.
goingToSleep()232     public void goingToSleep() throws RemoteException;
wakingUp()233     public void wakingUp() throws RemoteException;
234 
unhandledBack()235     public void unhandledBack() throws RemoteException;
openContentUri(Uri uri)236     public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException;
setDebugApp( String packageName, boolean waitForDebugger, boolean persistent)237     public void setDebugApp(
238         String packageName, boolean waitForDebugger, boolean persistent)
239         throws RemoteException;
setAlwaysFinish(boolean enabled)240     public void setAlwaysFinish(boolean enabled) throws RemoteException;
setActivityController(IActivityController watcher)241     public void setActivityController(IActivityController watcher)
242         throws RemoteException;
243 
enterSafeMode()244     public void enterSafeMode() throws RemoteException;
245 
noteWakeupAlarm(IIntentSender sender)246     public void noteWakeupAlarm(IIntentSender sender) throws RemoteException;
247 
killPids(int[] pids, String reason)248     public boolean killPids(int[] pids, String reason) throws RemoteException;
249 
250     // Special low-level communication with activity manager.
startRunning(String pkg, String cls, String action, String data)251     public void startRunning(String pkg, String cls, String action,
252             String data) throws RemoteException;
handleApplicationCrash(IBinder app, ApplicationErrorReport.CrashInfo crashInfo)253     public void handleApplicationCrash(IBinder app,
254             ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException;
handleApplicationWtf(IBinder app, String tag, ApplicationErrorReport.CrashInfo crashInfo)255     public boolean handleApplicationWtf(IBinder app, String tag,
256             ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException;
257 
258     // A StrictMode violation to be handled.  The violationMask is a
259     // subset of the original StrictMode policy bitmask, with only the
260     // bit violated and penalty bits to be executed by the
261     // ActivityManagerService remaining set.
handleApplicationStrictModeViolation(IBinder app, int violationMask, StrictMode.ViolationInfo crashInfo)262     public void handleApplicationStrictModeViolation(IBinder app, int violationMask,
263             StrictMode.ViolationInfo crashInfo) throws RemoteException;
264 
265     /*
266      * This will deliver the specified signal to all the persistent processes. Currently only
267      * SIGUSR1 is delivered. All others are ignored.
268      */
signalPersistentProcesses(int signal)269     public void signalPersistentProcesses(int signal) throws RemoteException;
270     // Retrieve info of applications installed on external media that are currently
271     // running.
getRunningAppProcesses()272     public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses()
273             throws RemoteException;
274  // Retrieve running application processes in the system
getRunningExternalApplications()275     public List<ApplicationInfo> getRunningExternalApplications()
276             throws RemoteException;
277     // Get device configuration
getDeviceConfigurationInfo()278     public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException;
279 
280     // Turn on/off profiling in a particular process.
profileControl(String process, boolean start, String path, ParcelFileDescriptor fd)281     public boolean profileControl(String process, boolean start,
282             String path, ParcelFileDescriptor fd) throws RemoteException;
283 
shutdown(int timeout)284     public boolean shutdown(int timeout) throws RemoteException;
285 
stopAppSwitches()286     public void stopAppSwitches() throws RemoteException;
resumeAppSwitches()287     public void resumeAppSwitches() throws RemoteException;
288 
registerActivityWatcher(IActivityWatcher watcher)289     public void registerActivityWatcher(IActivityWatcher watcher)
290             throws RemoteException;
unregisterActivityWatcher(IActivityWatcher watcher)291     public void unregisterActivityWatcher(IActivityWatcher watcher)
292             throws RemoteException;
293 
startActivityInPackage(int uid, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded)294     public int startActivityInPackage(int uid,
295             Intent intent, String resolvedType, IBinder resultTo,
296             String resultWho, int requestCode, boolean onlyIfNeeded)
297             throws RemoteException;
298 
killApplicationWithUid(String pkg, int uid)299     public void killApplicationWithUid(String pkg, int uid) throws RemoteException;
300 
closeSystemDialogs(String reason)301     public void closeSystemDialogs(String reason) throws RemoteException;
302 
getProcessMemoryInfo(int[] pids)303     public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids)
304             throws RemoteException;
305 
overridePendingTransition(IBinder token, String packageName, int enterAnim, int exitAnim)306     public void overridePendingTransition(IBinder token, String packageName,
307             int enterAnim, int exitAnim) throws RemoteException;
308 
isUserAMonkey()309     public boolean isUserAMonkey() throws RemoteException;
310 
finishHeavyWeightApp()311     public void finishHeavyWeightApp() throws RemoteException;
312 
crashApplication(int uid, int initialPid, String packageName, String message)313     public void crashApplication(int uid, int initialPid, String packageName,
314             String message) throws RemoteException;
315 
getProviderMimeType(Uri uri)316     public String getProviderMimeType(Uri uri) throws RemoteException;
317 
newUriPermissionOwner(String name)318     public IBinder newUriPermissionOwner(String name) throws RemoteException;
grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg, Uri uri, int mode)319     public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg,
320             Uri uri, int mode) throws RemoteException;
revokeUriPermissionFromOwner(IBinder owner, Uri uri, int mode)321     public void revokeUriPermissionFromOwner(IBinder owner, Uri uri,
322             int mode) throws RemoteException;
323 
324     /*
325      * Private non-Binder interfaces
326      */
testIsSystemReady()327     /* package */ boolean testIsSystemReady();
328 
329     /** Information you can retrieve about a particular application. */
330     public static class ContentProviderHolder implements Parcelable {
331         public final ProviderInfo info;
332         public IContentProvider provider;
333         public boolean noReleaseNeeded;
334 
ContentProviderHolder(ProviderInfo _info)335         public ContentProviderHolder(ProviderInfo _info) {
336             info = _info;
337         }
338 
describeContents()339         public int describeContents() {
340             return 0;
341         }
342 
writeToParcel(Parcel dest, int flags)343         public void writeToParcel(Parcel dest, int flags) {
344             info.writeToParcel(dest, 0);
345             if (provider != null) {
346                 dest.writeStrongBinder(provider.asBinder());
347             } else {
348                 dest.writeStrongBinder(null);
349             }
350             dest.writeInt(noReleaseNeeded ? 1:0);
351         }
352 
353         public static final Parcelable.Creator<ContentProviderHolder> CREATOR
354                 = new Parcelable.Creator<ContentProviderHolder>() {
355             public ContentProviderHolder createFromParcel(Parcel source) {
356                 return new ContentProviderHolder(source);
357             }
358 
359             public ContentProviderHolder[] newArray(int size) {
360                 return new ContentProviderHolder[size];
361             }
362         };
363 
ContentProviderHolder(Parcel source)364         private ContentProviderHolder(Parcel source) {
365             info = ProviderInfo.CREATOR.createFromParcel(source);
366             provider = ContentProviderNative.asInterface(
367                 source.readStrongBinder());
368             noReleaseNeeded = source.readInt() != 0;
369         }
370     };
371 
372     /** Information returned after waiting for an activity start. */
373     public static class WaitResult implements Parcelable {
374         public int result;
375         public boolean timeout;
376         public ComponentName who;
377         public long thisTime;
378         public long totalTime;
379 
WaitResult()380         public WaitResult() {
381         }
382 
describeContents()383         public int describeContents() {
384             return 0;
385         }
386 
writeToParcel(Parcel dest, int flags)387         public void writeToParcel(Parcel dest, int flags) {
388             dest.writeInt(result);
389             dest.writeInt(timeout ? 1 : 0);
390             ComponentName.writeToParcel(who, dest);
391             dest.writeLong(thisTime);
392             dest.writeLong(totalTime);
393         }
394 
395         public static final Parcelable.Creator<WaitResult> CREATOR
396                 = new Parcelable.Creator<WaitResult>() {
397             public WaitResult createFromParcel(Parcel source) {
398                 return new WaitResult(source);
399             }
400 
401             public WaitResult[] newArray(int size) {
402                 return new WaitResult[size];
403             }
404         };
405 
WaitResult(Parcel source)406         private WaitResult(Parcel source) {
407             result = source.readInt();
408             timeout = source.readInt() != 0;
409             who = ComponentName.readFromParcel(source);
410             thisTime = source.readLong();
411             totalTime = source.readLong();
412         }
413     };
414 
415     String descriptor = "android.app.IActivityManager";
416 
417     // Please keep these transaction codes the same -- they are also
418     // sent by C++ code.
419     int START_RUNNING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
420     int HANDLE_APPLICATION_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+1;
421     int START_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+2;
422     int UNHANDLED_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+3;
423     int OPEN_CONTENT_URI_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+4;
424 
425     // Remaining non-native transaction codes.
426     int FINISH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+10;
427     int REGISTER_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+11;
428     int UNREGISTER_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+12;
429     int BROADCAST_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+13;
430     int UNBROADCAST_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+14;
431     int FINISH_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+15;
432     int ATTACH_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+16;
433     int ACTIVITY_IDLE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+17;
434     int ACTIVITY_PAUSED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+18;
435     int ACTIVITY_STOPPED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+19;
436     int GET_CALLING_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+20;
437     int GET_CALLING_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+21;
438     int GET_TASKS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+22;
439     int MOVE_TASK_TO_FRONT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+23;
440     int MOVE_TASK_TO_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+24;
441     int MOVE_TASK_BACKWARDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+25;
442     int GET_TASK_FOR_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+26;
443     int REPORT_THUMBNAIL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+27;
444     int GET_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+28;
445     int PUBLISH_CONTENT_PROVIDERS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29;
446 
447     int FINISH_SUB_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+31;
448     int GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32;
449     int START_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33;
450     int STOP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34;
451     int BIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+35;
452     int UNBIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+36;
453     int PUBLISH_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+37;
454     int FINISH_OTHER_INSTANCES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+38;
455     int GOING_TO_SLEEP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+39;
456     int WAKING_UP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+40;
457     int SET_DEBUG_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+41;
458     int SET_ALWAYS_FINISH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+42;
459     int START_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+43;
460     int FINISH_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+44;
461     int GET_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+45;
462     int UPDATE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+46;
463     int STOP_SERVICE_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+47;
464     int GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48;
465     int GET_PACKAGE_FOR_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49;
466     int SET_PROCESS_LIMIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50;
467     int GET_PROCESS_LIMIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51;
468     int CHECK_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+52;
469     int CHECK_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+53;
470     int GRANT_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+54;
471     int REVOKE_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+55;
472     int SET_ACTIVITY_CONTROLLER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+56;
473     int SHOW_WAITING_FOR_DEBUGGER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+57;
474     int SIGNAL_PERSISTENT_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+58;
475     int GET_RECENT_TASKS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+59;
476     int SERVICE_DONE_EXECUTING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+60;
477     int ACTIVITY_DESTROYED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+61;
478     int GET_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+62;
479     int CANCEL_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+63;
480     int GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+64;
481     int ENTER_SAFE_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+65;
482     int START_NEXT_MATCHING_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+66;
483     int NOTE_WAKEUP_ALARM_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+67;
484     int REMOVE_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+68;
485     int SET_REQUESTED_ORIENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+69;
486     int GET_REQUESTED_ORIENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+70;
487     int UNBIND_FINISHED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+71;
488     int SET_PROCESS_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+72;
489     int SET_SERVICE_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+73;
490     int MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+74;
491     int GET_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+75;
492     int GET_PROCESSES_IN_ERROR_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+76;
493     int CLEAR_APP_DATA_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+77;
494     int FORCE_STOP_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+78;
495     int KILL_PIDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+79;
496     int GET_SERVICES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+80;
497 
498     int GET_RUNNING_APP_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+82;
499     int GET_DEVICE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+83;
500     int PEEK_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+84;
501     int PROFILE_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+85;
502     int SHUTDOWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+86;
503     int STOP_APP_SWITCHES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+87;
504     int RESUME_APP_SWITCHES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+88;
505     int START_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+89;
506     int BACKUP_AGENT_CREATED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+90;
507     int UNBIND_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+91;
508     int REGISTER_ACTIVITY_WATCHER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+92;
509     int UNREGISTER_ACTIVITY_WATCHER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+93;
510     int START_ACTIVITY_IN_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+94;
511     int KILL_APPLICATION_WITH_UID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+95;
512     int CLOSE_SYSTEM_DIALOGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+96;
513     int GET_PROCESS_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+97;
514     int KILL_APPLICATION_PROCESS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+98;
515     int START_ACTIVITY_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+99;
516     int OVERRIDE_PENDING_TRANSITION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+100;
517     int HANDLE_APPLICATION_WTF_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+101;
518     int KILL_BACKGROUND_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+102;
519     int IS_USER_A_MONKEY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+103;
520     int START_ACTIVITY_AND_WAIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+104;
521     int WILL_ACTIVITY_BE_VISIBLE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+105;
522     int START_ACTIVITY_WITH_CONFIG_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+106;
523     int GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+107;
524     int FINISH_HEAVY_WEIGHT_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+108;
525     int HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+109;
526     int IS_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+110;
527     int SET_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+111;
528     int IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+112;
529     int CRASH_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+113;
530     int GET_PROVIDER_MIME_TYPE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+114;
531     int NEW_URI_PERMISSION_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+115;
532     int GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+116;
533     int REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+117;
534 }
535