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