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.res.Configuration; 32 import android.graphics.Bitmap; 33 import android.net.Uri; 34 import android.os.Bundle; 35 import android.os.Debug; 36 import android.os.IBinder; 37 import android.os.IInterface; 38 import android.os.Parcel; 39 import android.os.ParcelFileDescriptor; 40 import android.os.Parcelable; 41 import android.os.RemoteException; 42 import android.os.StrictMode; 43 44 import java.util.List; 45 46 /** 47 * System private API for talking with the activity manager service. This 48 * provides calls from the application back to the activity manager. 49 * 50 * {@hide} 51 */ 52 public interface IActivityManager extends IInterface { 53 /** 54 * Returned by startActivity() if the start request was canceled because 55 * app switches are temporarily canceled to ensure the user's last request 56 * (such as pressing home) is performed. 57 */ 58 public static final int START_SWITCHES_CANCELED = 4; 59 /** 60 * Returned by startActivity() if an activity wasn't really started, but 61 * the given Intent was given to the existing top activity. 62 */ 63 public static final int START_DELIVERED_TO_TOP = 3; 64 /** 65 * Returned by startActivity() if an activity wasn't really started, but 66 * a task was simply brought to the foreground. 67 */ 68 public static final int START_TASK_TO_FRONT = 2; 69 /** 70 * Returned by startActivity() if the caller asked that the Intent not 71 * be executed if it is the recipient, and that is indeed the case. 72 */ 73 public static final int START_RETURN_INTENT_TO_CALLER = 1; 74 /** 75 * Activity was started successfully as normal. 76 */ 77 public static final int START_SUCCESS = 0; 78 public static final int START_INTENT_NOT_RESOLVED = -1; 79 public static final int START_CLASS_NOT_FOUND = -2; 80 public static final int START_FORWARD_AND_REQUEST_CONFLICT = -3; 81 public static final int START_PERMISSION_DENIED = -4; 82 public static final int START_NOT_ACTIVITY = -5; 83 public static final int START_CANCELED = -6; startActivity(IApplicationThread caller, Intent intent, String resolvedType, Uri[] grantedUriPermissions, int grantedMode, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded, boolean debug)84 public int startActivity(IApplicationThread caller, 85 Intent intent, String resolvedType, Uri[] grantedUriPermissions, 86 int grantedMode, IBinder resultTo, String resultWho, int requestCode, 87 boolean onlyIfNeeded, boolean debug) throws RemoteException; startActivityAndWait(IApplicationThread caller, Intent intent, String resolvedType, Uri[] grantedUriPermissions, int grantedMode, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded, boolean debug)88 public WaitResult startActivityAndWait(IApplicationThread caller, 89 Intent intent, String resolvedType, Uri[] grantedUriPermissions, 90 int grantedMode, IBinder resultTo, String resultWho, int requestCode, 91 boolean onlyIfNeeded, boolean debug) throws RemoteException; startActivityWithConfig(IApplicationThread caller, Intent intent, String resolvedType, Uri[] grantedUriPermissions, int grantedMode, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded, boolean debug, Configuration newConfig)92 public int startActivityWithConfig(IApplicationThread caller, 93 Intent intent, String resolvedType, Uri[] grantedUriPermissions, 94 int grantedMode, IBinder resultTo, String resultWho, int requestCode, 95 boolean onlyIfNeeded, boolean debug, Configuration newConfig) throws RemoteException; startActivityIntentSender(IApplicationThread caller, IntentSender intent, Intent fillInIntent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int flagsMask, int flagsValues)96 public int startActivityIntentSender(IApplicationThread caller, 97 IntentSender intent, Intent fillInIntent, String resolvedType, 98 IBinder resultTo, String resultWho, int requestCode, 99 int flagsMask, int flagsValues) throws RemoteException; startNextMatchingActivity(IBinder callingActivity, Intent intent)100 public boolean startNextMatchingActivity(IBinder callingActivity, 101 Intent intent) throws RemoteException; finishActivity(IBinder token, int code, Intent data)102 public boolean finishActivity(IBinder token, int code, Intent data) 103 throws RemoteException; finishSubActivity(IBinder token, String resultWho, int requestCode)104 public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException; willActivityBeVisible(IBinder token)105 public boolean willActivityBeVisible(IBinder token) throws RemoteException; registerReceiver(IApplicationThread caller, IIntentReceiver receiver, IntentFilter filter, String requiredPermission)106 public Intent registerReceiver(IApplicationThread caller, 107 IIntentReceiver receiver, IntentFilter filter, 108 String requiredPermission) throws RemoteException; unregisterReceiver(IIntentReceiver receiver)109 public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException; 110 public static final int BROADCAST_SUCCESS = 0; 111 public static final int BROADCAST_STICKY_CANT_HAVE_PERMISSION = -1; broadcastIntent(IApplicationThread caller, Intent intent, String resolvedType, IIntentReceiver resultTo, int resultCode, String resultData, Bundle map, String requiredPermission, boolean serialized, boolean sticky)112 public int broadcastIntent(IApplicationThread caller, Intent intent, 113 String resolvedType, IIntentReceiver resultTo, int resultCode, 114 String resultData, Bundle map, String requiredPermission, 115 boolean serialized, boolean sticky) throws RemoteException; unbroadcastIntent(IApplicationThread caller, Intent intent)116 public void unbroadcastIntent(IApplicationThread caller, Intent intent) throws RemoteException; 117 /* oneway */ finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast)118 public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException; attachApplication(IApplicationThread app)119 public void attachApplication(IApplicationThread app) throws RemoteException; 120 /* oneway */ activityIdle(IBinder token, Configuration config)121 public void activityIdle(IBinder token, Configuration config) throws RemoteException; activityPaused(IBinder token, Bundle state)122 public void activityPaused(IBinder token, Bundle state) throws RemoteException; 123 /* oneway */ activityStopped(IBinder token, Bitmap thumbnail, CharSequence description)124 public void activityStopped(IBinder token, 125 Bitmap thumbnail, CharSequence description) throws RemoteException; 126 /* oneway */ activityDestroyed(IBinder token)127 public void activityDestroyed(IBinder token) throws RemoteException; getCallingPackage(IBinder token)128 public String getCallingPackage(IBinder token) throws RemoteException; getCallingActivity(IBinder token)129 public ComponentName getCallingActivity(IBinder token) throws RemoteException; getTasks(int maxNum, int flags, IThumbnailReceiver receiver)130 public List getTasks(int maxNum, int flags, 131 IThumbnailReceiver receiver) throws RemoteException; getRecentTasks(int maxNum, int flags)132 public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, 133 int flags) throws RemoteException; getServices(int maxNum, int flags)134 public List getServices(int maxNum, int flags) throws RemoteException; getProcessesInErrorState()135 public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState() 136 throws RemoteException; moveTaskToFront(int task)137 public void moveTaskToFront(int task) throws RemoteException; moveTaskToBack(int task)138 public void moveTaskToBack(int task) throws RemoteException; moveActivityTaskToBack(IBinder token, boolean nonRoot)139 public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) throws RemoteException; moveTaskBackwards(int task)140 public void moveTaskBackwards(int task) throws RemoteException; getTaskForActivity(IBinder token, boolean onlyRoot)141 public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException; finishOtherInstances(IBinder token, ComponentName className)142 public void finishOtherInstances(IBinder token, ComponentName className) throws RemoteException; 143 /* oneway */ reportThumbnail(IBinder token, Bitmap thumbnail, CharSequence description)144 public void reportThumbnail(IBinder token, 145 Bitmap thumbnail, CharSequence description) throws RemoteException; getContentProvider(IApplicationThread caller, String name)146 public ContentProviderHolder getContentProvider(IApplicationThread caller, 147 String name) throws RemoteException; removeContentProvider(IApplicationThread caller, String name)148 public void removeContentProvider(IApplicationThread caller, 149 String name) throws RemoteException; publishContentProviders(IApplicationThread caller, List<ContentProviderHolder> providers)150 public void publishContentProviders(IApplicationThread caller, 151 List<ContentProviderHolder> providers) throws RemoteException; getRunningServiceControlPanel(ComponentName service)152 public PendingIntent getRunningServiceControlPanel(ComponentName service) 153 throws RemoteException; startService(IApplicationThread caller, Intent service, String resolvedType)154 public ComponentName startService(IApplicationThread caller, Intent service, 155 String resolvedType) throws RemoteException; stopService(IApplicationThread caller, Intent service, String resolvedType)156 public int stopService(IApplicationThread caller, Intent service, 157 String resolvedType) throws RemoteException; stopServiceToken(ComponentName className, IBinder token, int startId)158 public boolean stopServiceToken(ComponentName className, IBinder token, 159 int startId) throws RemoteException; setServiceForeground(ComponentName className, IBinder token, int id, Notification notification, boolean keepNotification)160 public void setServiceForeground(ComponentName className, IBinder token, 161 int id, Notification notification, boolean keepNotification) throws RemoteException; bindService(IApplicationThread caller, IBinder token, Intent service, String resolvedType, IServiceConnection connection, int flags)162 public int bindService(IApplicationThread caller, IBinder token, 163 Intent service, String resolvedType, 164 IServiceConnection connection, int flags) throws RemoteException; unbindService(IServiceConnection connection)165 public boolean unbindService(IServiceConnection connection) throws RemoteException; publishService(IBinder token, Intent intent, IBinder service)166 public void publishService(IBinder token, 167 Intent intent, IBinder service) throws RemoteException; unbindFinished(IBinder token, Intent service, boolean doRebind)168 public void unbindFinished(IBinder token, Intent service, 169 boolean doRebind) throws RemoteException; 170 /* oneway */ serviceDoneExecuting(IBinder token, int type, int startId, int res)171 public void serviceDoneExecuting(IBinder token, int type, int startId, 172 int res) throws RemoteException; peekService(Intent service, String resolvedType)173 public IBinder peekService(Intent service, String resolvedType) throws RemoteException; 174 bindBackupAgent(ApplicationInfo appInfo, int backupRestoreMode)175 public boolean bindBackupAgent(ApplicationInfo appInfo, int backupRestoreMode) 176 throws RemoteException; backupAgentCreated(String packageName, IBinder agent)177 public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException; unbindBackupAgent(ApplicationInfo appInfo)178 public void unbindBackupAgent(ApplicationInfo appInfo) throws RemoteException; killApplicationProcess(String processName, int uid)179 public void killApplicationProcess(String processName, int uid) throws RemoteException; 180 startInstrumentation(ComponentName className, String profileFile, int flags, Bundle arguments, IInstrumentationWatcher watcher)181 public boolean startInstrumentation(ComponentName className, String profileFile, 182 int flags, Bundle arguments, IInstrumentationWatcher watcher) 183 throws RemoteException; finishInstrumentation(IApplicationThread target, int resultCode, Bundle results)184 public void finishInstrumentation(IApplicationThread target, 185 int resultCode, Bundle results) throws RemoteException; 186 getConfiguration()187 public Configuration getConfiguration() throws RemoteException; updateConfiguration(Configuration values)188 public void updateConfiguration(Configuration values) throws RemoteException; setRequestedOrientation(IBinder token, int requestedOrientation)189 public void setRequestedOrientation(IBinder token, 190 int requestedOrientation) throws RemoteException; getRequestedOrientation(IBinder token)191 public int getRequestedOrientation(IBinder token) throws RemoteException; 192 getActivityClassForToken(IBinder token)193 public ComponentName getActivityClassForToken(IBinder token) throws RemoteException; getPackageForToken(IBinder token)194 public String getPackageForToken(IBinder token) throws RemoteException; 195 196 public static final int INTENT_SENDER_BROADCAST = 1; 197 public static final int INTENT_SENDER_ACTIVITY = 2; 198 public static final int INTENT_SENDER_ACTIVITY_RESULT = 3; 199 public static final int INTENT_SENDER_SERVICE = 4; getIntentSender(int type, String packageName, IBinder token, String resultWho, int requestCode, Intent intent, String resolvedType, int flags)200 public IIntentSender getIntentSender(int type, 201 String packageName, IBinder token, String resultWho, 202 int requestCode, Intent intent, String resolvedType, int flags) throws RemoteException; cancelIntentSender(IIntentSender sender)203 public void cancelIntentSender(IIntentSender sender) throws RemoteException; clearApplicationUserData(final String packageName, final IPackageDataObserver observer)204 public boolean clearApplicationUserData(final String packageName, 205 final IPackageDataObserver observer) throws RemoteException; getPackageForIntentSender(IIntentSender sender)206 public String getPackageForIntentSender(IIntentSender sender) throws RemoteException; 207 setProcessLimit(int max)208 public void setProcessLimit(int max) throws RemoteException; getProcessLimit()209 public int getProcessLimit() throws RemoteException; 210 setProcessForeground(IBinder token, int pid, boolean isForeground)211 public void setProcessForeground(IBinder token, int pid, boolean isForeground) throws RemoteException; 212 checkPermission(String permission, int pid, int uid)213 public int checkPermission(String permission, int pid, int uid) 214 throws RemoteException; 215 checkUriPermission(Uri uri, int pid, int uid, int mode)216 public int checkUriPermission(Uri uri, int pid, int uid, int mode) 217 throws RemoteException; grantUriPermission(IApplicationThread caller, String targetPkg, Uri uri, int mode)218 public void grantUriPermission(IApplicationThread caller, String targetPkg, 219 Uri uri, int mode) throws RemoteException; revokeUriPermission(IApplicationThread caller, Uri uri, int mode)220 public void revokeUriPermission(IApplicationThread caller, Uri uri, 221 int mode) throws RemoteException; 222 showWaitingForDebugger(IApplicationThread who, boolean waiting)223 public void showWaitingForDebugger(IApplicationThread who, boolean waiting) 224 throws RemoteException; 225 getMemoryInfo(ActivityManager.MemoryInfo outInfo)226 public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException; 227 killBackgroundProcesses(final String packageName)228 public void killBackgroundProcesses(final String packageName) throws RemoteException; forceStopPackage(final String packageName)229 public void forceStopPackage(final String packageName) throws RemoteException; 230 231 // Note: probably don't want to allow applications access to these. goingToSleep()232 public void goingToSleep() throws RemoteException; wakingUp()233 public void wakingUp() throws RemoteException; 234 unhandledBack()235 public void unhandledBack() throws RemoteException; openContentUri(Uri uri)236 public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException; setDebugApp( String packageName, boolean waitForDebugger, boolean persistent)237 public void setDebugApp( 238 String packageName, boolean waitForDebugger, boolean persistent) 239 throws RemoteException; setAlwaysFinish(boolean enabled)240 public void setAlwaysFinish(boolean enabled) throws RemoteException; setActivityController(IActivityController watcher)241 public void setActivityController(IActivityController watcher) 242 throws RemoteException; 243 enterSafeMode()244 public void enterSafeMode() throws RemoteException; 245 noteWakeupAlarm(IIntentSender sender)246 public void noteWakeupAlarm(IIntentSender sender) throws RemoteException; 247 killPids(int[] pids, String reason)248 public boolean killPids(int[] pids, String reason) throws RemoteException; 249 250 // Special low-level communication with activity manager. startRunning(String pkg, String cls, String action, String data)251 public void startRunning(String pkg, String cls, String action, 252 String data) throws RemoteException; handleApplicationCrash(IBinder app, ApplicationErrorReport.CrashInfo crashInfo)253 public void handleApplicationCrash(IBinder app, 254 ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException; handleApplicationWtf(IBinder app, String tag, ApplicationErrorReport.CrashInfo crashInfo)255 public boolean handleApplicationWtf(IBinder app, String tag, 256 ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException; 257 258 // A StrictMode violation to be handled. The violationMask is a 259 // subset of the original StrictMode policy bitmask, with only the 260 // bit violated and penalty bits to be executed by the 261 // ActivityManagerService remaining set. handleApplicationStrictModeViolation(IBinder app, int violationMask, StrictMode.ViolationInfo crashInfo)262 public void handleApplicationStrictModeViolation(IBinder app, int violationMask, 263 StrictMode.ViolationInfo crashInfo) throws RemoteException; 264 265 /* 266 * This will deliver the specified signal to all the persistent processes. Currently only 267 * SIGUSR1 is delivered. All others are ignored. 268 */ signalPersistentProcesses(int signal)269 public void signalPersistentProcesses(int signal) throws RemoteException; 270 // Retrieve info of applications installed on external media that are currently 271 // running. getRunningAppProcesses()272 public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() 273 throws RemoteException; 274 // Retrieve running application processes in the system getRunningExternalApplications()275 public List<ApplicationInfo> getRunningExternalApplications() 276 throws RemoteException; 277 // Get device configuration getDeviceConfigurationInfo()278 public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException; 279 280 // Turn on/off profiling in a particular process. profileControl(String process, boolean start, String path, ParcelFileDescriptor fd)281 public boolean profileControl(String process, boolean start, 282 String path, ParcelFileDescriptor fd) throws RemoteException; 283 shutdown(int timeout)284 public boolean shutdown(int timeout) throws RemoteException; 285 stopAppSwitches()286 public void stopAppSwitches() throws RemoteException; resumeAppSwitches()287 public void resumeAppSwitches() throws RemoteException; 288 registerActivityWatcher(IActivityWatcher watcher)289 public void registerActivityWatcher(IActivityWatcher watcher) 290 throws RemoteException; unregisterActivityWatcher(IActivityWatcher watcher)291 public void unregisterActivityWatcher(IActivityWatcher watcher) 292 throws RemoteException; 293 startActivityInPackage(int uid, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, boolean onlyIfNeeded)294 public int startActivityInPackage(int uid, 295 Intent intent, String resolvedType, IBinder resultTo, 296 String resultWho, int requestCode, boolean onlyIfNeeded) 297 throws RemoteException; 298 killApplicationWithUid(String pkg, int uid)299 public void killApplicationWithUid(String pkg, int uid) throws RemoteException; 300 closeSystemDialogs(String reason)301 public void closeSystemDialogs(String reason) throws RemoteException; 302 getProcessMemoryInfo(int[] pids)303 public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids) 304 throws RemoteException; 305 overridePendingTransition(IBinder token, String packageName, int enterAnim, int exitAnim)306 public void overridePendingTransition(IBinder token, String packageName, 307 int enterAnim, int exitAnim) throws RemoteException; 308 isUserAMonkey()309 public boolean isUserAMonkey() throws RemoteException; 310 finishHeavyWeightApp()311 public void finishHeavyWeightApp() throws RemoteException; 312 crashApplication(int uid, int initialPid, String packageName, String message)313 public void crashApplication(int uid, int initialPid, String packageName, 314 String message) throws RemoteException; 315 getProviderMimeType(Uri uri)316 public String getProviderMimeType(Uri uri) throws RemoteException; 317 newUriPermissionOwner(String name)318 public IBinder newUriPermissionOwner(String name) throws RemoteException; grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg, Uri uri, int mode)319 public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg, 320 Uri uri, int mode) throws RemoteException; revokeUriPermissionFromOwner(IBinder owner, Uri uri, int mode)321 public void revokeUriPermissionFromOwner(IBinder owner, Uri uri, 322 int mode) throws RemoteException; 323 324 /* 325 * Private non-Binder interfaces 326 */ testIsSystemReady()327 /* package */ boolean testIsSystemReady(); 328 329 /** Information you can retrieve about a particular application. */ 330 public static class ContentProviderHolder implements Parcelable { 331 public final ProviderInfo info; 332 public IContentProvider provider; 333 public boolean noReleaseNeeded; 334 ContentProviderHolder(ProviderInfo _info)335 public ContentProviderHolder(ProviderInfo _info) { 336 info = _info; 337 } 338 describeContents()339 public int describeContents() { 340 return 0; 341 } 342 writeToParcel(Parcel dest, int flags)343 public void writeToParcel(Parcel dest, int flags) { 344 info.writeToParcel(dest, 0); 345 if (provider != null) { 346 dest.writeStrongBinder(provider.asBinder()); 347 } else { 348 dest.writeStrongBinder(null); 349 } 350 dest.writeInt(noReleaseNeeded ? 1:0); 351 } 352 353 public static final Parcelable.Creator<ContentProviderHolder> CREATOR 354 = new Parcelable.Creator<ContentProviderHolder>() { 355 public ContentProviderHolder createFromParcel(Parcel source) { 356 return new ContentProviderHolder(source); 357 } 358 359 public ContentProviderHolder[] newArray(int size) { 360 return new ContentProviderHolder[size]; 361 } 362 }; 363 ContentProviderHolder(Parcel source)364 private ContentProviderHolder(Parcel source) { 365 info = ProviderInfo.CREATOR.createFromParcel(source); 366 provider = ContentProviderNative.asInterface( 367 source.readStrongBinder()); 368 noReleaseNeeded = source.readInt() != 0; 369 } 370 }; 371 372 /** Information returned after waiting for an activity start. */ 373 public static class WaitResult implements Parcelable { 374 public int result; 375 public boolean timeout; 376 public ComponentName who; 377 public long thisTime; 378 public long totalTime; 379 WaitResult()380 public WaitResult() { 381 } 382 describeContents()383 public int describeContents() { 384 return 0; 385 } 386 writeToParcel(Parcel dest, int flags)387 public void writeToParcel(Parcel dest, int flags) { 388 dest.writeInt(result); 389 dest.writeInt(timeout ? 1 : 0); 390 ComponentName.writeToParcel(who, dest); 391 dest.writeLong(thisTime); 392 dest.writeLong(totalTime); 393 } 394 395 public static final Parcelable.Creator<WaitResult> CREATOR 396 = new Parcelable.Creator<WaitResult>() { 397 public WaitResult createFromParcel(Parcel source) { 398 return new WaitResult(source); 399 } 400 401 public WaitResult[] newArray(int size) { 402 return new WaitResult[size]; 403 } 404 }; 405 WaitResult(Parcel source)406 private WaitResult(Parcel source) { 407 result = source.readInt(); 408 timeout = source.readInt() != 0; 409 who = ComponentName.readFromParcel(source); 410 thisTime = source.readLong(); 411 totalTime = source.readLong(); 412 } 413 }; 414 415 String descriptor = "android.app.IActivityManager"; 416 417 // Please keep these transaction codes the same -- they are also 418 // sent by C++ code. 419 int START_RUNNING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION; 420 int HANDLE_APPLICATION_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+1; 421 int START_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+2; 422 int UNHANDLED_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+3; 423 int OPEN_CONTENT_URI_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+4; 424 425 // Remaining non-native transaction codes. 426 int FINISH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+10; 427 int REGISTER_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+11; 428 int UNREGISTER_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+12; 429 int BROADCAST_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+13; 430 int UNBROADCAST_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+14; 431 int FINISH_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+15; 432 int ATTACH_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+16; 433 int ACTIVITY_IDLE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+17; 434 int ACTIVITY_PAUSED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+18; 435 int ACTIVITY_STOPPED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+19; 436 int GET_CALLING_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+20; 437 int GET_CALLING_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+21; 438 int GET_TASKS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+22; 439 int MOVE_TASK_TO_FRONT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+23; 440 int MOVE_TASK_TO_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+24; 441 int MOVE_TASK_BACKWARDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+25; 442 int GET_TASK_FOR_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+26; 443 int REPORT_THUMBNAIL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+27; 444 int GET_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+28; 445 int PUBLISH_CONTENT_PROVIDERS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29; 446 447 int FINISH_SUB_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+31; 448 int GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32; 449 int START_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33; 450 int STOP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34; 451 int BIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+35; 452 int UNBIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+36; 453 int PUBLISH_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+37; 454 int FINISH_OTHER_INSTANCES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+38; 455 int GOING_TO_SLEEP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+39; 456 int WAKING_UP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+40; 457 int SET_DEBUG_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+41; 458 int SET_ALWAYS_FINISH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+42; 459 int START_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+43; 460 int FINISH_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+44; 461 int GET_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+45; 462 int UPDATE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+46; 463 int STOP_SERVICE_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+47; 464 int GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48; 465 int GET_PACKAGE_FOR_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49; 466 int SET_PROCESS_LIMIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50; 467 int GET_PROCESS_LIMIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51; 468 int CHECK_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+52; 469 int CHECK_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+53; 470 int GRANT_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+54; 471 int REVOKE_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+55; 472 int SET_ACTIVITY_CONTROLLER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+56; 473 int SHOW_WAITING_FOR_DEBUGGER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+57; 474 int SIGNAL_PERSISTENT_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+58; 475 int GET_RECENT_TASKS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+59; 476 int SERVICE_DONE_EXECUTING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+60; 477 int ACTIVITY_DESTROYED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+61; 478 int GET_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+62; 479 int CANCEL_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+63; 480 int GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+64; 481 int ENTER_SAFE_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+65; 482 int START_NEXT_MATCHING_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+66; 483 int NOTE_WAKEUP_ALARM_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+67; 484 int REMOVE_CONTENT_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+68; 485 int SET_REQUESTED_ORIENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+69; 486 int GET_REQUESTED_ORIENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+70; 487 int UNBIND_FINISHED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+71; 488 int SET_PROCESS_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+72; 489 int SET_SERVICE_FOREGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+73; 490 int MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+74; 491 int GET_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+75; 492 int GET_PROCESSES_IN_ERROR_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+76; 493 int CLEAR_APP_DATA_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+77; 494 int FORCE_STOP_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+78; 495 int KILL_PIDS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+79; 496 int GET_SERVICES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+80; 497 498 int GET_RUNNING_APP_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+82; 499 int GET_DEVICE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+83; 500 int PEEK_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+84; 501 int PROFILE_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+85; 502 int SHUTDOWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+86; 503 int STOP_APP_SWITCHES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+87; 504 int RESUME_APP_SWITCHES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+88; 505 int START_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+89; 506 int BACKUP_AGENT_CREATED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+90; 507 int UNBIND_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+91; 508 int REGISTER_ACTIVITY_WATCHER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+92; 509 int UNREGISTER_ACTIVITY_WATCHER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+93; 510 int START_ACTIVITY_IN_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+94; 511 int KILL_APPLICATION_WITH_UID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+95; 512 int CLOSE_SYSTEM_DIALOGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+96; 513 int GET_PROCESS_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+97; 514 int KILL_APPLICATION_PROCESS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+98; 515 int START_ACTIVITY_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+99; 516 int OVERRIDE_PENDING_TRANSITION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+100; 517 int HANDLE_APPLICATION_WTF_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+101; 518 int KILL_BACKGROUND_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+102; 519 int IS_USER_A_MONKEY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+103; 520 int START_ACTIVITY_AND_WAIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+104; 521 int WILL_ACTIVITY_BE_VISIBLE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+105; 522 int START_ACTIVITY_WITH_CONFIG_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+106; 523 int GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+107; 524 int FINISH_HEAVY_WEIGHT_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+108; 525 int HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+109; 526 int IS_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+110; 527 int SET_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+111; 528 int IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+112; 529 int CRASH_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+113; 530 int GET_PROVIDER_MIME_TYPE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+114; 531 int NEW_URI_PERMISSION_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+115; 532 int GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+116; 533 int REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+117; 534 } 535