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