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