IActivityManager.java revision 2286cdc0cab77e61b75e6fe9a45b91f6e57cd46d
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
17package android.app;
18
19import android.app.ActivityManager.RunningTaskInfo;
20import android.app.ActivityManager.RunningServiceInfo;
21import android.app.ActivityManager.StackBoxInfo;
22import android.content.ComponentName;
23import android.content.ContentProviderNative;
24import android.content.IContentProvider;
25import android.content.IIntentReceiver;
26import android.content.IIntentSender;
27import android.content.Intent;
28import android.content.IntentFilter;
29import android.content.IntentSender;
30import android.content.pm.ApplicationInfo;
31import android.content.pm.ConfigurationInfo;
32import android.content.pm.IPackageDataObserver;
33import android.content.pm.ProviderInfo;
34import android.content.pm.UserInfo;
35import android.content.res.Configuration;
36import android.graphics.Bitmap;
37import android.net.Uri;
38import android.os.Bundle;
39import android.os.Debug;
40import android.os.IBinder;
41import android.os.IInterface;
42import android.os.Parcel;
43import android.os.ParcelFileDescriptor;
44import android.os.Parcelable;
45import android.os.RemoteException;
46import android.os.StrictMode;
47
48import java.util.List;
49
50/**
51 * System private API for talking with the activity manager service.  This
52 * provides calls from the application back to the activity manager.
53 *
54 * {@hide}
55 */
56public interface IActivityManager extends IInterface {
57    public int startActivity(IApplicationThread caller, String callingPackage,
58            Intent intent, String resolvedType, IBinder resultTo, String resultWho,
59            int requestCode, int flags, String profileFile,
60            ParcelFileDescriptor profileFd, Bundle options) throws RemoteException;
61    public int startActivityAsUser(IApplicationThread caller, String callingPackage,
62            Intent intent, String resolvedType, IBinder resultTo, String resultWho,
63            int requestCode, int flags, String profileFile,
64            ParcelFileDescriptor profileFd, Bundle options, int userId) throws RemoteException;
65    public WaitResult startActivityAndWait(IApplicationThread caller, String callingPackage,
66            Intent intent, String resolvedType, IBinder resultTo, String resultWho,
67            int requestCode, int flags, String profileFile,
68            ParcelFileDescriptor profileFd, Bundle options, int userId) throws RemoteException;
69    public int startActivityWithConfig(IApplicationThread caller, String callingPackage,
70            Intent intent, String resolvedType, IBinder resultTo, String resultWho,
71            int requestCode, int startFlags, Configuration newConfig,
72            Bundle options, int userId) throws RemoteException;
73    public int startActivityIntentSender(IApplicationThread caller,
74            IntentSender intent, Intent fillInIntent, String resolvedType,
75            IBinder resultTo, String resultWho, int requestCode,
76            int flagsMask, int flagsValues, Bundle options) throws RemoteException;
77    public boolean startNextMatchingActivity(IBinder callingActivity,
78            Intent intent, Bundle options) throws RemoteException;
79    public boolean finishActivity(IBinder token, int code, Intent data)
80            throws RemoteException;
81    public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException;
82    public boolean finishActivityAffinity(IBinder token) throws RemoteException;
83    public boolean willActivityBeVisible(IBinder token) throws RemoteException;
84    public Intent registerReceiver(IApplicationThread caller, String callerPackage,
85            IIntentReceiver receiver, IntentFilter filter,
86            String requiredPermission, int userId) throws RemoteException;
87    public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException;
88    public int broadcastIntent(IApplicationThread caller, Intent intent,
89            String resolvedType, IIntentReceiver resultTo, int resultCode,
90            String resultData, Bundle map, String requiredPermission,
91            int appOp, boolean serialized, boolean sticky, int userId) throws RemoteException;
92    public void unbroadcastIntent(IApplicationThread caller, Intent intent, int userId) throws RemoteException;
93    public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException;
94    public void attachApplication(IApplicationThread app) throws RemoteException;
95    public void activityResumed(IBinder token) throws RemoteException;
96    public void activityIdle(IBinder token, Configuration config,
97            boolean stopProfiling) throws RemoteException;
98    public void activityPaused(IBinder token) throws RemoteException;
99    public void activityStopped(IBinder token, Bundle state,
100            Bitmap thumbnail, CharSequence description) throws RemoteException;
101    public void activitySlept(IBinder token) throws RemoteException;
102    public void activityDestroyed(IBinder token) throws RemoteException;
103    public String getCallingPackage(IBinder token) throws RemoteException;
104    public ComponentName getCallingActivity(IBinder token) throws RemoteException;
105    public List<RunningTaskInfo> getTasks(int maxNum, int flags,
106                         IThumbnailReceiver receiver) throws RemoteException;
107    public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
108            int flags, int userId) throws RemoteException;
109    public ActivityManager.TaskThumbnails getTaskThumbnails(int taskId) throws RemoteException;
110    public Bitmap getTaskTopThumbnail(int taskId) throws RemoteException;
111    public List<RunningServiceInfo> getServices(int maxNum, int flags) throws RemoteException;
112    public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState()
113            throws RemoteException;
114    public void moveTaskToFront(int task, int flags, Bundle options) throws RemoteException;
115    public void moveTaskToBack(int task) throws RemoteException;
116    public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) throws RemoteException;
117    public void moveTaskBackwards(int task) throws RemoteException;
118    public int createStack(int taskId, int relativeStackBoxId, int position, float weight)
119            throws RemoteException;
120    public void moveTaskToStack(int taskId, int stackId, boolean toTop) throws RemoteException;
121    public void resizeStackBox(int stackBoxId, float weight) throws RemoteException;
122    public List<StackBoxInfo> getStackBoxes() throws RemoteException;
123    public StackBoxInfo getStackBoxInfo(int stackBoxId) throws RemoteException;
124    public void setFocusedStack(int stackId) throws RemoteException;
125    public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException;
126    /* oneway */
127    public void reportThumbnail(IBinder token,
128            Bitmap thumbnail, CharSequence description) throws RemoteException;
129    public ContentProviderHolder getContentProvider(IApplicationThread caller,
130            String name, int userId, boolean stable) throws RemoteException;
131    public ContentProviderHolder getContentProviderExternal(String name, int userId, IBinder token)
132            throws RemoteException;
133    public void removeContentProvider(IBinder connection, boolean stable) throws RemoteException;
134    public void removeContentProviderExternal(String name, IBinder token) throws RemoteException;
135    public void publishContentProviders(IApplicationThread caller,
136            List<ContentProviderHolder> providers) throws RemoteException;
137    public boolean refContentProvider(IBinder connection, int stableDelta, int unstableDelta)
138            throws RemoteException;
139    public void unstableProviderDied(IBinder connection) throws RemoteException;
140    public PendingIntent getRunningServiceControlPanel(ComponentName service)
141            throws RemoteException;
142    public ComponentName startService(IApplicationThread caller, Intent service,
143            String resolvedType, int userId) throws RemoteException;
144    public int stopService(IApplicationThread caller, Intent service,
145            String resolvedType, int userId) throws RemoteException;
146    public boolean stopServiceToken(ComponentName className, IBinder token,
147            int startId) throws RemoteException;
148    public void setServiceForeground(ComponentName className, IBinder token,
149            int id, Notification notification, boolean keepNotification) throws RemoteException;
150    public int bindService(IApplicationThread caller, IBinder token,
151            Intent service, String resolvedType,
152            IServiceConnection connection, int flags, int userId) throws RemoteException;
153    public boolean unbindService(IServiceConnection connection) throws RemoteException;
154    public void publishService(IBinder token,
155            Intent intent, IBinder service) throws RemoteException;
156    public void unbindFinished(IBinder token, Intent service,
157            boolean doRebind) throws RemoteException;
158    /* oneway */
159    public void serviceDoneExecuting(IBinder token, int type, int startId,
160            int res) throws RemoteException;
161    public IBinder peekService(Intent service, String resolvedType) throws RemoteException;
162
163    public boolean bindBackupAgent(ApplicationInfo appInfo, int backupRestoreMode)
164            throws RemoteException;
165    public void clearPendingBackup() throws RemoteException;
166    public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException;
167    public void unbindBackupAgent(ApplicationInfo appInfo) throws RemoteException;
168    public void killApplicationProcess(String processName, int uid) throws RemoteException;
169
170    public boolean startInstrumentation(ComponentName className, String profileFile,
171            int flags, Bundle arguments, IInstrumentationWatcher watcher,
172            IUiAutomationConnection connection, int userId) throws RemoteException;
173    public void finishInstrumentation(IApplicationThread target,
174            int resultCode, Bundle results) throws RemoteException;
175
176    public Configuration getConfiguration() throws RemoteException;
177    public void updateConfiguration(Configuration values) throws RemoteException;
178    public void setRequestedOrientation(IBinder token,
179            int requestedOrientation) throws RemoteException;
180    public int getRequestedOrientation(IBinder token) throws RemoteException;
181
182    public ComponentName getActivityClassForToken(IBinder token) throws RemoteException;
183    public String getPackageForToken(IBinder token) throws RemoteException;
184
185    public IIntentSender getIntentSender(int type,
186            String packageName, IBinder token, String resultWho,
187            int requestCode, Intent[] intents, String[] resolvedTypes,
188            int flags, Bundle options, int userId) throws RemoteException;
189    public void cancelIntentSender(IIntentSender sender) throws RemoteException;
190    public boolean clearApplicationUserData(final String packageName,
191            final IPackageDataObserver observer, int userId) throws RemoteException;
192    public String getPackageForIntentSender(IIntentSender sender) throws RemoteException;
193    public int getUidForIntentSender(IIntentSender sender) throws RemoteException;
194
195    public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll,
196            boolean requireFull, String name, String callerPackage) throws RemoteException;
197
198    public void setProcessLimit(int max) throws RemoteException;
199    public int getProcessLimit() throws RemoteException;
200
201    public void setProcessForeground(IBinder token, int pid,
202            boolean isForeground) throws RemoteException;
203
204    public int checkPermission(String permission, int pid, int uid)
205            throws RemoteException;
206
207    public int checkUriPermission(Uri uri, int pid, int uid, int mode)
208            throws RemoteException;
209    public void grantUriPermission(IApplicationThread caller, String targetPkg,
210            Uri uri, int mode) throws RemoteException;
211    public void revokeUriPermission(IApplicationThread caller, Uri uri,
212            int mode) throws RemoteException;
213
214    public void showWaitingForDebugger(IApplicationThread who, boolean waiting)
215            throws RemoteException;
216
217    public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException;
218
219    public void killBackgroundProcesses(final String packageName, int userId)
220            throws RemoteException;
221    public void killAllBackgroundProcesses() throws RemoteException;
222    public void forceStopPackage(final String packageName, int userId) throws RemoteException;
223
224    // Note: probably don't want to allow applications access to these.
225    public void goingToSleep() throws RemoteException;
226    public void wakingUp() throws RemoteException;
227    public void setLockScreenShown(boolean shown) throws RemoteException;
228
229    public void unhandledBack() throws RemoteException;
230    public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException;
231    public void setDebugApp(
232        String packageName, boolean waitForDebugger, boolean persistent)
233        throws RemoteException;
234    public void setAlwaysFinish(boolean enabled) throws RemoteException;
235    public void setActivityController(IActivityController watcher)
236        throws RemoteException;
237
238    public void enterSafeMode() throws RemoteException;
239
240    public void noteWakeupAlarm(IIntentSender sender) throws RemoteException;
241
242    public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException;
243    public boolean killProcessesBelowForeground(String reason) throws RemoteException;
244
245    // Special low-level communication with activity manager.
246    public void startRunning(String pkg, String cls, String action,
247            String data) throws RemoteException;
248    public void handleApplicationCrash(IBinder app,
249            ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException;
250    public boolean handleApplicationWtf(IBinder app, String tag,
251            ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException;
252
253    // A StrictMode violation to be handled.  The violationMask is a
254    // subset of the original StrictMode policy bitmask, with only the
255    // bit violated and penalty bits to be executed by the
256    // ActivityManagerService remaining set.
257    public void handleApplicationStrictModeViolation(IBinder app, int violationMask,
258            StrictMode.ViolationInfo crashInfo) throws RemoteException;
259
260    /*
261     * This will deliver the specified signal to all the persistent processes. Currently only
262     * SIGUSR1 is delivered. All others are ignored.
263     */
264    public void signalPersistentProcesses(int signal) throws RemoteException;
265    // Retrieve running application processes in the system
266    public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses()
267            throws RemoteException;
268    // Retrieve info of applications installed on external media that are currently
269    // running.
270    public List<ApplicationInfo> getRunningExternalApplications()
271            throws RemoteException;
272    // Get memory information about the calling process.
273    public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo)
274            throws RemoteException;
275    // Get device configuration
276    public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException;
277
278    // Turn on/off profiling in a particular process.
279    public boolean profileControl(String process, int userId, boolean start,
280            String path, ParcelFileDescriptor fd, int profileType) throws RemoteException;
281
282    public boolean shutdown(int timeout) throws RemoteException;
283
284    public void stopAppSwitches() throws RemoteException;
285    public void resumeAppSwitches() throws RemoteException;
286
287    public void killApplicationWithAppId(String pkg, int appid, String reason)
288            throws RemoteException;
289
290    public void closeSystemDialogs(String reason) throws RemoteException;
291
292    public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids)
293            throws RemoteException;
294
295    public void overridePendingTransition(IBinder token, String packageName,
296            int enterAnim, int exitAnim) throws RemoteException;
297
298    public boolean isUserAMonkey() throws RemoteException;
299
300    public void setUserIsMonkey(boolean monkey) throws RemoteException;
301
302    public void finishHeavyWeightApp() throws RemoteException;
303
304    public void convertToOpaque(IBinder token) throws RemoteException;
305
306    public void setImmersive(IBinder token, boolean immersive) throws RemoteException;
307    public boolean isImmersive(IBinder token) throws RemoteException;
308    public boolean isTopActivityImmersive() throws RemoteException;
309
310    public void crashApplication(int uid, int initialPid, String packageName,
311            String message) throws RemoteException;
312
313    public String getProviderMimeType(Uri uri, int userId) throws RemoteException;
314
315    public IBinder newUriPermissionOwner(String name) throws RemoteException;
316    public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg,
317            Uri uri, int mode) throws RemoteException;
318    public void revokeUriPermissionFromOwner(IBinder owner, Uri uri,
319            int mode) throws RemoteException;
320
321    public int checkGrantUriPermission(int callingUid, String targetPkg,
322            Uri uri, int modeFlags) throws RemoteException;
323
324    // Cause the specified process to dump the specified heap.
325    public boolean dumpHeap(String process, int userId, boolean managed, String path,
326        ParcelFileDescriptor fd) throws RemoteException;
327
328    public int startActivities(IApplicationThread caller, String callingPackage,
329            Intent[] intents, String[] resolvedTypes, IBinder resultTo,
330            Bundle options, int userId) throws RemoteException;
331
332    public int getFrontActivityScreenCompatMode() throws RemoteException;
333    public void setFrontActivityScreenCompatMode(int mode) throws RemoteException;
334    public int getPackageScreenCompatMode(String packageName) throws RemoteException;
335    public void setPackageScreenCompatMode(String packageName, int mode)
336            throws RemoteException;
337    public boolean getPackageAskScreenCompat(String packageName) throws RemoteException;
338    public void setPackageAskScreenCompat(String packageName, boolean ask)
339            throws RemoteException;
340
341    // Multi-user APIs
342    public boolean switchUser(int userid) throws RemoteException;
343    public int stopUser(int userid, IStopUserCallback callback) throws RemoteException;
344    public UserInfo getCurrentUser() throws RemoteException;
345    public boolean isUserRunning(int userid, boolean orStopping) throws RemoteException;
346    public int[] getRunningUserIds() throws RemoteException;
347
348    public boolean removeSubTask(int taskId, int subTaskIndex) throws RemoteException;
349
350    public boolean removeTask(int taskId, int flags) throws RemoteException;
351
352    public void registerProcessObserver(IProcessObserver observer) throws RemoteException;
353    public void unregisterProcessObserver(IProcessObserver observer) throws RemoteException;
354
355    public boolean isIntentSenderTargetedToPackage(IIntentSender sender) throws RemoteException;
356
357    public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException;
358
359    public Intent getIntentForIntentSender(IIntentSender sender) throws RemoteException;
360
361    public void updatePersistentConfiguration(Configuration values) throws RemoteException;
362
363    public long[] getProcessPss(int[] pids) throws RemoteException;
364
365    public void showBootMessage(CharSequence msg, boolean always) throws RemoteException;
366
367    public void dismissKeyguardOnNextActivity() throws RemoteException;
368
369    public boolean targetTaskAffinityMatchesActivity(IBinder token, String destAffinity)
370            throws RemoteException;
371
372    public boolean navigateUpTo(IBinder token, Intent target, int resultCode, Intent resultData)
373            throws RemoteException;
374
375    // These are not public because you need to be very careful in how you
376    // manage your activity to make sure it is always the uid you expect.
377    public int getLaunchedFromUid(IBinder activityToken) throws RemoteException;
378    public String getLaunchedFromPackage(IBinder activityToken) throws RemoteException;
379
380    public void registerUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException;
381    public void unregisterUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException;
382
383    public void requestBugReport() throws RemoteException;
384
385    public long inputDispatchingTimedOut(int pid, boolean aboveSystem) throws RemoteException;
386
387    public Bundle getTopActivityExtras(int requestType) throws RemoteException;
388
389    public void reportTopActivityExtras(IBinder token, Bundle extras) throws RemoteException;
390
391    public void killUid(int uid, String reason) throws RemoteException;
392
393    public void hang(IBinder who, boolean allowRestart) throws RemoteException;
394
395    public void reportActivityFullyDrawn(IBinder token) throws RemoteException;
396
397    /*
398     * Private non-Binder interfaces
399     */
400    /* package */ boolean testIsSystemReady();
401
402    /** Information you can retrieve about a particular application. */
403    public static class ContentProviderHolder implements Parcelable {
404        public final ProviderInfo info;
405        public IContentProvider provider;
406        public IBinder connection;
407        public boolean noReleaseNeeded;
408
409        public ContentProviderHolder(ProviderInfo _info) {
410            info = _info;
411        }
412
413        @Override
414        public int describeContents() {
415            return 0;
416        }
417
418        @Override
419        public void writeToParcel(Parcel dest, int flags) {
420            info.writeToParcel(dest, 0);
421            if (provider != null) {
422                dest.writeStrongBinder(provider.asBinder());
423            } else {
424                dest.writeStrongBinder(null);
425            }
426            dest.writeStrongBinder(connection);
427            dest.writeInt(noReleaseNeeded ? 1:0);
428        }
429
430        public static final Parcelable.Creator<ContentProviderHolder> CREATOR
431                = new Parcelable.Creator<ContentProviderHolder>() {
432            @Override
433            public ContentProviderHolder createFromParcel(Parcel source) {
434                return new ContentProviderHolder(source);
435            }
436
437            @Override
438            public ContentProviderHolder[] newArray(int size) {
439                return new ContentProviderHolder[size];
440            }
441        };
442
443        private ContentProviderHolder(Parcel source) {
444            info = ProviderInfo.CREATOR.createFromParcel(source);
445            provider = ContentProviderNative.asInterface(
446                source.readStrongBinder());
447            connection = source.readStrongBinder();
448            noReleaseNeeded = source.readInt() != 0;
449        }
450    }
451
452    /** Information returned after waiting for an activity start. */
453    public static class WaitResult implements Parcelable {
454        public int result;
455        public boolean timeout;
456        public ComponentName who;
457        public long thisTime;
458        public long totalTime;
459
460        public WaitResult() {
461        }
462
463        @Override
464        public int describeContents() {
465            return 0;
466        }
467
468        @Override
469        public void writeToParcel(Parcel dest, int flags) {
470            dest.writeInt(result);
471            dest.writeInt(timeout ? 1 : 0);
472            ComponentName.writeToParcel(who, dest);
473            dest.writeLong(thisTime);
474            dest.writeLong(totalTime);
475        }
476
477        public static final Parcelable.Creator<WaitResult> CREATOR
478                = new Parcelable.Creator<WaitResult>() {
479            @Override
480            public WaitResult createFromParcel(Parcel source) {
481                return new WaitResult(source);
482            }
483
484            @Override
485            public WaitResult[] newArray(int size) {
486                return new WaitResult[size];
487            }
488        };
489
490        private WaitResult(Parcel source) {
491            result = source.readInt();
492            timeout = source.readInt() != 0;
493            who = ComponentName.readFromParcel(source);
494            thisTime = source.readLong();
495            totalTime = source.readLong();
496        }
497    };
498
499    String descriptor = "android.app.IActivityManager";
500
501    // Please keep these transaction codes the same -- they are also
502    // sent by C++ code.
503    int START_RUNNING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
504    int HANDLE_APPLICATION_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+1;
505    int START_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+2;
506    int UNHANDLED_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+3;
507    int OPEN_CONTENT_URI_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+4;
508
509    // Remaining non-native transaction codes.
510    int FINISH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+10;
511    int REGISTER_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+11;
512    int UNREGISTER_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+12;
513    int BROADCAST_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+13;
514    int UNBROADCAST_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+14;
515    int FINISH_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+15;
516    int ATTACH_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+16;
517    int ACTIVITY_IDLE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+17;
518    int ACTIVITY_PAUSED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+18;
519    int ACTIVITY_STOPPED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+19;
520    int GET_CALLING_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+20;
521    int GET_CALLING_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+21;
522    int GET_TASKS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+22;
523    int MOVE_TASK_TO_FRONT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+23;
524    int MOVE_TASK_TO_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+24;
525    int MOVE_TASK_BACKWARDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+25;
526    int GET_TASK_FOR_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+26;
527    int REPORT_THUMBNAIL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+27;
528    int GET_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+28;
529    int PUBLISH_CONTENT_PROVIDERS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29;
530    int REF_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+30;
531    int FINISH_SUB_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+31;
532    int GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32;
533    int START_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33;
534    int STOP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34;
535    int BIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+35;
536    int UNBIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+36;
537    int PUBLISH_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+37;
538    int ACTIVITY_RESUMED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+38;
539    int GOING_TO_SLEEP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+39;
540    int WAKING_UP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+40;
541    int SET_DEBUG_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+41;
542    int SET_ALWAYS_FINISH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+42;
543    int START_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+43;
544    int FINISH_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+44;
545    int GET_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+45;
546    int UPDATE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+46;
547    int STOP_SERVICE_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+47;
548    int GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48;
549    int GET_PACKAGE_FOR_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49;
550    int SET_PROCESS_LIMIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50;
551    int GET_PROCESS_LIMIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51;
552    int CHECK_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+52;
553    int CHECK_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+53;
554    int GRANT_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+54;
555    int REVOKE_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+55;
556    int SET_ACTIVITY_CONTROLLER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+56;
557    int SHOW_WAITING_FOR_DEBUGGER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+57;
558    int SIGNAL_PERSISTENT_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+58;
559    int GET_RECENT_TASKS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+59;
560    int SERVICE_DONE_EXECUTING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+60;
561    int ACTIVITY_DESTROYED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+61;
562    int GET_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+62;
563    int CANCEL_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+63;
564    int GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+64;
565    int ENTER_SAFE_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+65;
566    int START_NEXT_MATCHING_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+66;
567    int NOTE_WAKEUP_ALARM_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+67;
568    int REMOVE_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+68;
569    int SET_REQUESTED_ORIENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+69;
570    int GET_REQUESTED_ORIENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+70;
571    int UNBIND_FINISHED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+71;
572    int SET_PROCESS_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+72;
573    int SET_SERVICE_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+73;
574    int MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+74;
575    int GET_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+75;
576    int GET_PROCESSES_IN_ERROR_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+76;
577    int CLEAR_APP_DATA_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+77;
578    int FORCE_STOP_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+78;
579    int KILL_PIDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+79;
580    int GET_SERVICES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+80;
581    int GET_TASK_THUMBNAILS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+81;
582    int GET_RUNNING_APP_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+82;
583    int GET_DEVICE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+83;
584    int PEEK_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+84;
585    int PROFILE_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+85;
586    int SHUTDOWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+86;
587    int STOP_APP_SWITCHES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+87;
588    int RESUME_APP_SWITCHES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+88;
589    int START_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+89;
590    int BACKUP_AGENT_CREATED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+90;
591    int UNBIND_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+91;
592    int GET_UID_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+92;
593    int HANDLE_INCOMING_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+93;
594    int GET_TASK_TOP_THUMBNAIL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+94;
595    int KILL_APPLICATION_WITH_APPID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+95;
596    int CLOSE_SYSTEM_DIALOGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+96;
597    int GET_PROCESS_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+97;
598    int KILL_APPLICATION_PROCESS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+98;
599    int START_ACTIVITY_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+99;
600    int OVERRIDE_PENDING_TRANSITION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+100;
601    int HANDLE_APPLICATION_WTF_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+101;
602    int KILL_BACKGROUND_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+102;
603    int IS_USER_A_MONKEY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+103;
604    int START_ACTIVITY_AND_WAIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+104;
605    int WILL_ACTIVITY_BE_VISIBLE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+105;
606    int START_ACTIVITY_WITH_CONFIG_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+106;
607    int GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+107;
608    int FINISH_HEAVY_WEIGHT_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+108;
609    int HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+109;
610    int IS_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+110;
611    int SET_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+111;
612    int IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+112;
613    int CRASH_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+113;
614    int GET_PROVIDER_MIME_TYPE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+114;
615    int NEW_URI_PERMISSION_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+115;
616    int GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+116;
617    int REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+117;
618    int CHECK_GRANT_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+118;
619    int DUMP_HEAP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+119;
620    int START_ACTIVITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+120;
621    int IS_USER_RUNNING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+121;
622    int ACTIVITY_SLEPT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+122;
623    int GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+123;
624    int SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+124;
625    int GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+125;
626    int SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+126;
627    int GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+127;
628    int SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+128;
629    int SWITCH_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+129;
630    int REMOVE_SUB_TASK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+130;
631    int REMOVE_TASK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+131;
632    int REGISTER_PROCESS_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+132;
633    int UNREGISTER_PROCESS_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+133;
634    int IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+134;
635    int UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+135;
636    int GET_PROCESS_PSS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+136;
637    int SHOW_BOOT_MESSAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+137;
638    int DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+138;
639    int KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+139;
640    int GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+140;
641    int REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+141;
642    int GET_MY_MEMORY_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+142;
643    int KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+143;
644    int GET_CURRENT_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+144;
645    int TARGET_TASK_AFFINITY_MATCHES_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+145;
646    int NAVIGATE_UP_TO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+146;
647    int SET_LOCK_SCREEN_SHOWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+147;
648    int FINISH_ACTIVITY_AFFINITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+148;
649    int GET_LAUNCHED_FROM_UID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+149;
650    int UNSTABLE_PROVIDER_DIED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+150;
651    int IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+151;
652    int START_ACTIVITY_AS_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+152;
653    int STOP_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+153;
654    int REGISTER_USER_SWITCH_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+154;
655    int UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+155;
656    int GET_RUNNING_USER_IDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+156;
657    int REQUEST_BUG_REPORT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+157;
658    int INPUT_DISPATCHING_TIMED_OUT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+158;
659    int CLEAR_PENDING_BACKUP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+159;
660    int GET_INTENT_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+160;
661    int GET_TOP_ACTIVITY_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+161;
662    int REPORT_TOP_ACTIVITY_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+162;
663    int GET_LAUNCHED_FROM_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+163;
664    int KILL_UID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+164;
665    int SET_USER_IS_MONKEY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+165;
666    int HANG_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+166;
667    int CREATE_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+167;
668    int MOVE_TASK_TO_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+168;
669    int RESIZE_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+169;
670    int GET_STACK_BOXES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+170;
671    int SET_FOCUSED_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+171;
672    int GET_STACK_BOX_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+172;
673    int CONVERT_TO_OPAQUE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+173;
674    int REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+174;
675}
676