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