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