IActivityManager.aidl revision 132dffbc83b2dd91218a8e82a4df9e4d2da128ac
1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.app; 18 19import android.app.ActivityManager; 20import android.app.ApplicationErrorReport; 21import android.app.ContentProviderHolder; 22import android.app.IApplicationThread; 23import android.app.IActivityContainer; 24import android.app.IActivityContainerCallback; 25import android.app.IActivityController; 26import android.app.IAppTask; 27import android.app.IInstrumentationWatcher; 28import android.app.IProcessObserver; 29import android.app.IServiceConnection; 30import android.app.IStopUserCallback; 31import android.app.ITaskStackListener; 32import android.app.IUiAutomationConnection; 33import android.app.IUidObserver; 34import android.app.IUserSwitchObserver; 35import android.app.Notification; 36import android.app.PendingIntent; 37import android.app.PictureInPictureArgs; 38import android.app.ProfilerInfo; 39import android.app.WaitResult; 40import android.app.assist.AssistContent; 41import android.app.assist.AssistStructure; 42import android.content.ComponentName; 43import android.content.IIntentReceiver; 44import android.content.IIntentSender; 45import android.content.Intent; 46import android.content.IntentFilter; 47import android.content.IntentSender; 48import android.content.pm.ApplicationInfo; 49import android.content.pm.ConfigurationInfo; 50import android.content.pm.IPackageDataObserver; 51import android.content.pm.ParceledListSlice; 52import android.content.pm.ProviderInfo; 53import android.content.pm.UserInfo; 54import android.content.res.Configuration; 55import android.graphics.Bitmap; 56import android.graphics.GraphicBuffer; 57import android.graphics.Point; 58import android.graphics.Rect; 59import android.net.Uri; 60import android.os.Bundle; 61import android.os.Debug; 62import android.os.IBinder; 63import android.os.IProgressListener; 64import android.os.ParcelFileDescriptor; 65import android.os.PersistableBundle; 66import android.os.StrictMode; 67import android.service.voice.IVoiceInteractionSession; 68import com.android.internal.app.IVoiceInteractor; 69import com.android.internal.os.IResultReceiver; 70import com.android.internal.policy.IKeyguardDismissCallback; 71 72import java.util.List; 73 74/** 75 * System private API for talking with the activity manager service. This 76 * provides calls from the application back to the activity manager. 77 * 78 * {@hide} 79 */ 80interface IActivityManager { 81 // WARNING: when these transactions are updated, check if they are any callers on the native 82 // side. If so, make sure they are using the correct transaction ids and arguments. 83 // If a transaction which will also be used on the native side is being inserted, add it to 84 // below block of transactions. 85 86 // Since these transactions are also called from native code, these must be kept in sync with 87 // the ones in frameworks/native/include/binder/IActivityManager.h 88 // =============== Beginning of transactions used on native side as well ====================== 89 ParcelFileDescriptor openContentUri(in String uriString); 90 // =============== End of transactions used on native side as well ============================ 91 92 // Special low-level communication with activity manager. 93 void handleApplicationCrash(in IBinder app, 94 in ApplicationErrorReport.ParcelableCrashInfo crashInfo); 95 int startActivity(in IApplicationThread caller, in String callingPackage, in Intent intent, 96 in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode, 97 int flags, in ProfilerInfo profilerInfo, in Bundle options); 98 void unhandledBack(); 99 100 boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask); 101 Intent registerReceiver(in IApplicationThread caller, in String callerPackage, 102 in IIntentReceiver receiver, in IntentFilter filter, 103 in String requiredPermission, int userId); 104 void unregisterReceiver(in IIntentReceiver receiver); 105 int broadcastIntent(in IApplicationThread caller, in Intent intent, 106 in String resolvedType, in IIntentReceiver resultTo, int resultCode, 107 in String resultData, in Bundle map, in String[] requiredPermissions, 108 int appOp, in Bundle options, boolean serialized, boolean sticky, int userId); 109 void unbroadcastIntent(in IApplicationThread caller, in Intent intent, int userId); 110 oneway void finishReceiver(in IBinder who, int resultCode, in String resultData, in Bundle map, 111 boolean abortBroadcast, int flags); 112 void attachApplication(in IApplicationThread app); 113 oneway void activityIdle(in IBinder token, in Configuration config, 114 in boolean stopProfiling); 115 void activityPaused(in IBinder token); 116 oneway void activityStopped(in IBinder token, in Bundle state, 117 in PersistableBundle persistentState, in CharSequence description); 118 String getCallingPackage(in IBinder token); 119 ComponentName getCallingActivity(in IBinder token); 120 List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, int flags); 121 void moveTaskToFront(int task, int flags, in Bundle options); 122 void moveTaskBackwards(int task); 123 int getTaskForActivity(in IBinder token, in boolean onlyRoot); 124 ContentProviderHolder getContentProvider(in IApplicationThread caller, 125 in String name, int userId, boolean stable); 126 void publishContentProviders(in IApplicationThread caller, 127 in List<ContentProviderHolder> providers); 128 boolean refContentProvider(in IBinder connection, int stableDelta, int unstableDelta); 129 void finishSubActivity(in IBinder token, in String resultWho, int requestCode); 130 PendingIntent getRunningServiceControlPanel(in ComponentName service); 131 ComponentName startService(in IApplicationThread caller, in Intent service, 132 in String resolvedType, int id, in Notification notification, 133 in String callingPackage, int userId); 134 int stopService(in IApplicationThread caller, in Intent service, 135 in String resolvedType, int userId); 136 int bindService(in IApplicationThread caller, in IBinder token, in Intent service, 137 in String resolvedType, in IServiceConnection connection, int flags, 138 in String callingPackage, int userId); 139 boolean unbindService(in IServiceConnection connection); 140 void publishService(in IBinder token, in Intent intent, in IBinder service); 141 void activityResumed(in IBinder token); 142 void setDebugApp(in String packageName, boolean waitForDebugger, boolean persistent); 143 void setAlwaysFinish(boolean enabled); 144 boolean startInstrumentation(in ComponentName className, in String profileFile, 145 int flags, in Bundle arguments, in IInstrumentationWatcher watcher, 146 in IUiAutomationConnection connection, int userId, 147 in String abiOverride); 148 void finishInstrumentation(in IApplicationThread target, int resultCode, 149 in Bundle results); 150 /** 151 * @return A copy of global {@link Configuration}, contains general settings for the entire 152 * system. Corresponds to the configuration of the default display. 153 * @throws RemoteException 154 */ 155 Configuration getConfiguration(); 156 /** 157 * Updates global configuration and applies changes to the entire system. 158 * @param values Update values for global configuration. If null is passed it will request the 159 * Window Manager to compute new config for the default display. 160 * @throws RemoteException 161 * @return Returns true if the configuration was updated. 162 */ 163 boolean updateConfiguration(in Configuration values); 164 boolean stopServiceToken(in ComponentName className, in IBinder token, int startId); 165 ComponentName getActivityClassForToken(in IBinder token); 166 String getPackageForToken(in IBinder token); 167 void setProcessLimit(int max); 168 int getProcessLimit(); 169 int checkPermission(in String permission, int pid, int uid); 170 int checkUriPermission(in Uri uri, int pid, int uid, int mode, int userId, 171 in IBinder callerToken); 172 void grantUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri, 173 int mode, int userId); 174 void revokeUriPermission(in IApplicationThread caller, in Uri uri, int mode, int userId); 175 void setActivityController(in IActivityController watcher, boolean imAMonkey); 176 void showWaitingForDebugger(in IApplicationThread who, boolean waiting); 177 /* 178 * This will deliver the specified signal to all the persistent processes. Currently only 179 * SIGUSR1 is delivered. All others are ignored. 180 */ 181 void signalPersistentProcesses(int signal); 182 ParceledListSlice getRecentTasks(int maxNum, 183 int flags, int userId); 184 oneway void serviceDoneExecuting(in IBinder token, int type, int startId, int res); 185 oneway void activityDestroyed(in IBinder token); 186 IIntentSender getIntentSender(int type, in String packageName, in IBinder token, 187 in String resultWho, int requestCode, in Intent[] intents, in String[] resolvedTypes, 188 int flags, in Bundle options, int userId); 189 void cancelIntentSender(in IIntentSender sender); 190 String getPackageForIntentSender(in IIntentSender sender); 191 void enterSafeMode(); 192 boolean startNextMatchingActivity(in IBinder callingActivity, 193 in Intent intent, in Bundle options); 194 void noteWakeupAlarm(in IIntentSender sender, int sourceUid, 195 in String sourcePkg, in String tag); 196 void removeContentProvider(in IBinder connection, boolean stable); 197 void setRequestedOrientation(in IBinder token, int requestedOrientation); 198 int getRequestedOrientation(in IBinder token); 199 void unbindFinished(in IBinder token, in Intent service, boolean doRebind); 200 void setProcessForeground(in IBinder token, int pid, boolean isForeground); 201 void setServiceForeground(in ComponentName className, in IBinder token, 202 int id, in Notification notification, int flags); 203 boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot); 204 void getMemoryInfo(out ActivityManager.MemoryInfo outInfo); 205 List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState(); 206 boolean clearApplicationUserData(in String packageName, 207 in IPackageDataObserver observer, int userId); 208 void forceStopPackage(in String packageName, int userId); 209 boolean killPids(in int[] pids, in String reason, boolean secure); 210 List<ActivityManager.RunningServiceInfo> getServices(int maxNum, int flags); 211 ActivityManager.TaskThumbnail getTaskThumbnail(int taskId); 212 // Retrieve running application processes in the system 213 List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses(); 214 // Get device configuration 215 ConfigurationInfo getDeviceConfigurationInfo(); 216 IBinder peekService(in Intent service, in String resolvedType, in String callingPackage); 217 // Turn on/off profiling in a particular process. 218 boolean profileControl(in String process, int userId, boolean start, 219 in ProfilerInfo profilerInfo, int profileType); 220 boolean shutdown(int timeout); 221 void stopAppSwitches(); 222 void resumeAppSwitches(); 223 boolean bindBackupAgent(in String packageName, int backupRestoreMode, int userId); 224 void backupAgentCreated(in String packageName, in IBinder agent); 225 void unbindBackupAgent(in ApplicationInfo appInfo); 226 int getUidForIntentSender(in IIntentSender sender); 227 int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, 228 boolean requireFull, in String name, in String callerPackage); 229 void addPackageDependency(in String packageName); 230 void killApplication(in String pkg, int appId, int userId, in String reason); 231 void closeSystemDialogs(in String reason); 232 Debug.MemoryInfo[] getProcessMemoryInfo(in int[] pids); 233 void killApplicationProcess(in String processName, int uid); 234 int startActivityIntentSender(in IApplicationThread caller, 235 in IntentSender intent, in Intent fillInIntent, in String resolvedType, 236 in IBinder resultTo, in String resultWho, int requestCode, 237 int flagsMask, int flagsValues, in Bundle options); 238 void overridePendingTransition(in IBinder token, in String packageName, 239 int enterAnim, int exitAnim); 240 // Special low-level communication with activity manager. 241 boolean handleApplicationWtf(in IBinder app, in String tag, boolean system, 242 in ApplicationErrorReport.ParcelableCrashInfo crashInfo); 243 void killBackgroundProcesses(in String packageName, int userId); 244 boolean isUserAMonkey(); 245 WaitResult startActivityAndWait(in IApplicationThread caller, in String callingPackage, 246 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 247 int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, 248 int userId); 249 boolean willActivityBeVisible(in IBinder token); 250 int startActivityWithConfig(in IApplicationThread caller, in String callingPackage, 251 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 252 int requestCode, int startFlags, in Configuration newConfig, 253 in Bundle options, int userId); 254 // Retrieve info of applications installed on external media that are currently 255 // running. 256 List<ApplicationInfo> getRunningExternalApplications(); 257 void finishHeavyWeightApp(); 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. 262 void handleApplicationStrictModeViolation(in IBinder app, int violationMask, 263 in StrictMode.ViolationInfo crashInfo); 264 boolean isImmersive(in IBinder token); 265 void setImmersive(in IBinder token, boolean immersive); 266 boolean isTopActivityImmersive(); 267 void crashApplication(int uid, int initialPid, in String packageName, int userId, in String message); 268 String getProviderMimeType(in Uri uri, int userId); 269 IBinder newUriPermissionOwner(in String name); 270 void grantUriPermissionFromOwner(in IBinder owner, int fromUid, in String targetPkg, 271 in Uri uri, int mode, int sourceUserId, int targetUserId); 272 void revokeUriPermissionFromOwner(in IBinder owner, in Uri uri, int mode, int userId); 273 int checkGrantUriPermission(int callingUid, in String targetPkg, in Uri uri, 274 int modeFlags, int userId); 275 // Cause the specified process to dump the specified heap. 276 boolean dumpHeap(in String process, int userId, boolean managed, in String path, 277 in ParcelFileDescriptor fd); 278 int startActivities(in IApplicationThread caller, in String callingPackage, 279 in Intent[] intents, in String[] resolvedTypes, in IBinder resultTo, 280 in Bundle options, int userId); 281 boolean isUserRunning(int userid, int flags); 282 oneway void activitySlept(in IBinder token); 283 int getFrontActivityScreenCompatMode(); 284 void setFrontActivityScreenCompatMode(int mode); 285 int getPackageScreenCompatMode(in String packageName); 286 void setPackageScreenCompatMode(in String packageName, int mode); 287 boolean getPackageAskScreenCompat(in String packageName); 288 void setPackageAskScreenCompat(in String packageName, boolean ask); 289 boolean switchUser(int userid); 290 void setFocusedTask(int taskId); 291 boolean removeTask(int taskId); 292 void registerProcessObserver(in IProcessObserver observer); 293 void unregisterProcessObserver(in IProcessObserver observer); 294 boolean isIntentSenderTargetedToPackage(in IIntentSender sender); 295 void updatePersistentConfiguration(in Configuration values); 296 long[] getProcessPss(in int[] pids); 297 void showBootMessage(in CharSequence msg, boolean always); 298 void killAllBackgroundProcesses(); 299 ContentProviderHolder getContentProviderExternal(in String name, int userId, 300 in IBinder token); 301 void removeContentProviderExternal(in String name, in IBinder token); 302 // Get memory information about the calling process. 303 void getMyMemoryState(out ActivityManager.RunningAppProcessInfo outInfo); 304 boolean killProcessesBelowForeground(in String reason); 305 UserInfo getCurrentUser(); 306 boolean shouldUpRecreateTask(in IBinder token, in String destAffinity); 307 boolean navigateUpTo(in IBinder token, in Intent target, int resultCode, 308 in Intent resultData); 309 void setLockScreenShown(boolean showing); 310 boolean finishActivityAffinity(in IBinder token); 311 // This is not public because you need to be very careful in how you 312 // manage your activity to make sure it is always the uid you expect. 313 int getLaunchedFromUid(in IBinder activityToken); 314 void unstableProviderDied(in IBinder connection); 315 boolean isIntentSenderAnActivity(in IIntentSender sender); 316 int startActivityAsUser(in IApplicationThread caller, in String callingPackage, 317 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 318 int requestCode, int flags, in ProfilerInfo profilerInfo, 319 in Bundle options, int userId); 320 int stopUser(int userid, boolean force, in IStopUserCallback callback); 321 void registerUserSwitchObserver(in IUserSwitchObserver observer, in String name); 322 void unregisterUserSwitchObserver(in IUserSwitchObserver observer); 323 int[] getRunningUserIds(); 324 325 // Deprecated - This method is only used by a few internal components and it will soon be 326 // replaced by a proper bug report API (which will be restricted to a few, pre-defined apps). 327 // No new code should be calling it. 328 void requestBugReport(int bugreportType); 329 330 long inputDispatchingTimedOut(int pid, boolean aboveSystem, in String reason); 331 void clearPendingBackup(); 332 Intent getIntentForIntentSender(in IIntentSender sender); 333 Bundle getAssistContextExtras(int requestType); 334 void reportAssistContextExtras(in IBinder token, in Bundle extras, 335 in AssistStructure structure, in AssistContent content, in Uri referrer); 336 // This is not public because you need to be very careful in how you 337 // manage your activity to make sure it is always the uid you expect. 338 String getLaunchedFromPackage(in IBinder activityToken); 339 void killUid(int appId, int userId, in String reason); 340 void setUserIsMonkey(boolean monkey); 341 void hang(in IBinder who, boolean allowRestart); 342 IActivityContainer createVirtualActivityContainer(in IBinder parentActivityToken, 343 in IActivityContainerCallback callback); 344 void moveTaskToStack(int taskId, int stackId, boolean toTop); 345 /** 346 * Resizes the input stack id to the given bounds. 347 * 348 * @param stackId Id of the stack to resize. 349 * @param bounds Bounds to resize the stack to or {@code null} for fullscreen. 350 * @param allowResizeInDockedMode True if the resize should be allowed when the docked stack is 351 * active. 352 * @param preserveWindows True if the windows of activities contained in the stack should be 353 * preserved. 354 * @param animate True if the stack resize should be animated. 355 * @param animationDuration The duration of the resize animation in milliseconds or -1 if the 356 * default animation duration should be used. 357 * @throws RemoteException 358 */ 359 void resizeStack(int stackId, in Rect bounds, boolean allowResizeInDockedMode, 360 boolean preserveWindows, boolean animate, int animationDuration); 361 List<ActivityManager.StackInfo> getAllStackInfos(); 362 void setFocusedStack(int stackId); 363 ActivityManager.StackInfo getStackInfo(int stackId); 364 boolean convertFromTranslucent(in IBinder token); 365 boolean convertToTranslucent(in IBinder token, in Bundle options); 366 void notifyActivityDrawn(in IBinder token); 367 void reportActivityFullyDrawn(in IBinder token); 368 void restart(); 369 void performIdleMaintenance(); 370 void takePersistableUriPermission(in Uri uri, int modeFlags, int userId); 371 void releasePersistableUriPermission(in Uri uri, int modeFlags, int userId); 372 ParceledListSlice getPersistedUriPermissions(in String packageName, boolean incoming); 373 void appNotRespondingViaProvider(in IBinder connection); 374 Rect getTaskBounds(int taskId); 375 int getActivityDisplayId(in IBinder activityToken); 376 boolean setProcessMemoryTrimLevel(in String process, int uid, int level); 377 378 379 // Start of L transactions 380 String getTagForIntentSender(in IIntentSender sender, in String prefix); 381 boolean startUserInBackground(int userid); 382 void startLockTaskModeById(int taskId); 383 void startLockTaskModeByToken(in IBinder token); 384 void stopLockTaskMode(); 385 boolean isInLockTaskMode(); 386 void setTaskDescription(in IBinder token, in ActivityManager.TaskDescription values); 387 int startVoiceActivity(in String callingPackage, int callingPid, int callingUid, 388 in Intent intent, in String resolvedType, in IVoiceInteractionSession session, 389 in IVoiceInteractor interactor, int flags, in ProfilerInfo profilerInfo, 390 in Bundle options, int userId); 391 Bundle getActivityOptions(in IBinder token); 392 List<IBinder> getAppTasks(in String callingPackage); 393 void startSystemLockTaskMode(int taskId); 394 void stopSystemLockTaskMode(); 395 void finishVoiceTask(in IVoiceInteractionSession session); 396 boolean isTopOfTask(in IBinder token); 397 boolean requestVisibleBehind(in IBinder token, boolean visible); 398 boolean isBackgroundVisibleBehind(in IBinder token); 399 void backgroundResourcesReleased(in IBinder token); 400 void notifyLaunchTaskBehindComplete(in IBinder token); 401 int startActivityFromRecents(int taskId, in Bundle options); 402 void notifyEnterAnimationComplete(in IBinder token); 403 int startActivityAsCaller(in IApplicationThread caller, in String callingPackage, 404 in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho, 405 int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options, 406 boolean ignoreTargetSecurity, int userId); 407 int addAppTask(in IBinder activityToken, in Intent intent, 408 in ActivityManager.TaskDescription description, in Bitmap thumbnail); 409 Point getAppTaskThumbnailSize(); 410 boolean releaseActivityInstance(in IBinder token); 411 void releaseSomeActivities(in IApplicationThread app); 412 void bootAnimationComplete(); 413 Bitmap getTaskDescriptionIcon(in String filename, int userId); 414 boolean launchAssistIntent(in Intent intent, int requestType, in String hint, int userHandle, 415 in Bundle args); 416 void startInPlaceAnimationOnFrontMostApplication(in Bundle opts); 417 int checkPermissionWithToken(in String permission, int pid, int uid, 418 in IBinder callerToken); 419 void registerTaskStackListener(in ITaskStackListener listener); 420 421 422 // Start of M transactions 423 void notifyCleartextNetwork(int uid, in byte[] firstPacket); 424 IActivityContainer createStackOnDisplay(int displayId); 425 int getFocusedStackId(); 426 void setTaskResizeable(int taskId, int resizeableMode); 427 boolean requestAssistContextExtras(int requestType, in IResultReceiver receiver, 428 in Bundle receiverExtras, in IBinder activityToken, 429 boolean focused, boolean newSessionId); 430 void resizeTask(int taskId, in Rect bounds, int resizeMode); 431 int getLockTaskModeState(); 432 void setDumpHeapDebugLimit(in String processName, int uid, long maxMemSize, 433 in String reportPackage); 434 void dumpHeapFinished(in String path); 435 void setVoiceKeepAwake(in IVoiceInteractionSession session, boolean keepAwake); 436 void updateLockTaskPackages(int userId, in String[] packages); 437 void noteAlarmStart(in IIntentSender sender, int sourceUid, in String tag); 438 void noteAlarmFinish(in IIntentSender sender, int sourceUid, in String tag); 439 int getPackageProcessState(in String packageName, in String callingPackage); 440 oneway void showLockTaskEscapeMessage(in IBinder token); 441 void updateDeviceOwner(in String packageName); 442 /** 443 * Notify the system that the keyguard is going away. 444 * 445 * @param flags See {@link android.view.WindowManagerPolicy#KEYGUARD_GOING_AWAY_FLAG_TO_SHADE} 446 * etc. 447 */ 448 void keyguardGoingAway(int flags); 449 void registerUidObserver(in IUidObserver observer, int which, int cutpoint, 450 String callingPackage); 451 void unregisterUidObserver(in IUidObserver observer); 452 boolean isAssistDataAllowedOnCurrentActivity(); 453 boolean showAssistFromActivity(in IBinder token, in Bundle args); 454 boolean isRootVoiceInteraction(in IBinder token); 455 456 457 // Start of N transactions 458 // Start Binder transaction tracking for all applications. 459 boolean startBinderTracking(); 460 // Stop Binder transaction tracking for all applications and dump trace data to the given file 461 // descriptor. 462 boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd); 463 /** 464 * Try to place task to provided position. The final position might be different depending on 465 * current user and stacks state. The task will be moved to target stack if it's currently in 466 * different stack. 467 */ 468 void positionTaskInStack(int taskId, int stackId, int position); 469 int getActivityStackId(in IBinder token); 470 void exitFreeformMode(in IBinder token); 471 void reportSizeConfigurations(in IBinder token, in int[] horizontalSizeConfiguration, 472 in int[] verticalSizeConfigurations, in int[] smallestWidthConfigurations); 473 boolean moveTaskToDockedStack(int taskId, int createMode, boolean toTop, boolean animate, 474 in Rect initialBounds, boolean moveHomeStackFront); 475 void suppressResizeConfigChanges(boolean suppress); 476 void moveTasksToFullscreenStack(int fromStackId, boolean onTop); 477 boolean moveTopActivityToPinnedStack(int stackId, in Rect bounds); 478 boolean isAppStartModeDisabled(int uid, in String packageName); 479 boolean unlockUser(int userid, in byte[] token, in byte[] secret, 480 in IProgressListener listener); 481 boolean isInMultiWindowMode(in IBinder token); 482 boolean isInPictureInPictureMode(in IBinder token); 483 void killPackageDependents(in String packageName, int userId); 484 boolean enterPictureInPictureMode(in IBinder token, in PictureInPictureArgs args); 485 void setPictureInPictureArgs(in IBinder token, in PictureInPictureArgs args); 486 void activityRelaunched(in IBinder token); 487 IBinder getUriPermissionOwnerForActivity(in IBinder activityToken); 488 /** 489 * Resizes the docked stack, and all other stacks as the result of the dock stack bounds change. 490 * 491 * @param dockedBounds The bounds for the docked stack. 492 * @param tempDockedTaskBounds The temporary bounds for the tasks in the docked stack, which 493 * might be different from the stack bounds to allow more 494 * flexibility while resizing, or {@code null} if they should be the 495 * same as the stack bounds. 496 * @param tempDockedTaskInsetBounds The temporary bounds for the tasks to calculate the insets. 497 * When resizing, we usually "freeze" the layout of a task. To 498 * achieve that, we also need to "freeze" the insets, which 499 * gets achieved by changing task bounds but not bounds used 500 * to calculate the insets in this transient state 501 * @param tempOtherTaskBounds The temporary bounds for the tasks in all other stacks, or 502 * {@code null} if they should be the same as the stack bounds. 503 * @param tempOtherTaskInsetBounds Like {@code tempDockedTaskInsetBounds}, but for the other 504 * stacks. 505 * @throws RemoteException 506 */ 507 void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, 508 in Rect tempDockedTaskInsetBounds, 509 in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds); 510 int setVrMode(in IBinder token, boolean enabled, in ComponentName packageName); 511 // Gets the URI permissions granted to an arbitrary package. 512 // NOTE: this is different from getPersistedUriPermissions(), which returns the URIs the package 513 // granted to another packages (instead of those granted to it). 514 ParceledListSlice getGrantedUriPermissions(in String packageName, int userId); 515 // Clears the URI permissions granted to an arbitrary package. 516 void clearGrantedUriPermissions(in String packageName, int userId); 517 boolean isAppForeground(int uid); 518 void startLocalVoiceInteraction(in IBinder token, in Bundle options); 519 void stopLocalVoiceInteraction(in IBinder token); 520 boolean supportsLocalVoiceInteraction(); 521 void notifyPinnedStackAnimationEnded(); 522 void removeStack(int stackId); 523 void makePackageIdle(String packageName, int userId); 524 int getMemoryTrimLevel(); 525 /** 526 * Resizes the pinned stack. 527 * 528 * @param pinnedBounds The bounds for the pinned stack. 529 * @param tempPinnedTaskBounds The temporary bounds for the tasks in the pinned stack, which 530 * might be different from the stack bounds to allow more 531 * flexibility while resizing, or {@code null} if they should be the 532 * same as the stack bounds. 533 */ 534 void resizePinnedStack(in Rect pinnedBounds, in Rect tempPinnedTaskBounds); 535 boolean isVrModePackageEnabled(in ComponentName packageName); 536 /** 537 * Moves all tasks from the docked stack in the fullscreen stack and puts the top task of the 538 * fullscreen stack into the docked stack. 539 */ 540 void swapDockedAndFullscreenStack(); 541 void notifyLockedProfile(int userId); 542 void startConfirmDeviceCredentialIntent(in Intent intent, in Bundle options); 543 void sendIdleJobTrigger(); 544 int sendIntentSender(in IIntentSender target, int code, in Intent intent, 545 in String resolvedType, in IIntentReceiver finishedReceiver, 546 in String requiredPermission, in Bundle options); 547 548 549 // Start of N MR1 transactions 550 void setVrThread(int tid); 551 void setRenderThread(int tid); 552 /** 553 * Lets activity manager know whether the calling process is currently showing "top-level" UI 554 * that is not an activity, i.e. windows on the screen the user is currently interacting with. 555 * 556 * <p>This flag can only be set for persistent processes. 557 * 558 * @param hasTopUi Whether the calling process has "top-level" UI. 559 */ 560 void setHasTopUi(boolean hasTopUi); 561 /** 562 * Returns if the target of the PendingIntent can be fired directly, without triggering 563 * a work profile challenge. This can happen if the PendingIntent is to start direct-boot 564 * aware activities, and the target user is in RUNNING_LOCKED state, i.e. we should allow 565 * direct-boot aware activity to bypass work challenge when the user hasn't unlocked yet. 566 * @param intent the {@link PendingIntent} to be tested. 567 * @return {@code true} if the intent should not trigger a work challenge, {@code false} 568 * otherwise. 569 * @throws RemoteException 570 */ 571 boolean canBypassWorkChallenge(in PendingIntent intent); 572 573 // Start of O transactions 574 void requestActivityRelaunch(in IBinder token); 575 /** 576 * Updates override configuration applied to specific display. 577 * @param values Update values for display configuration. If null is passed it will request the 578 * Window Manager to compute new config for the specified display. 579 * @param displayId Id of the display to apply the config to. 580 * @throws RemoteException 581 * @return Returns true if the configuration was updated. 582 */ 583 boolean updateDisplayOverrideConfiguration(in Configuration values, int displayId); 584 void unregisterTaskStackListener(ITaskStackListener listener); 585 void moveStackToDisplay(int stackId, int displayId); 586 boolean requestAutoFillData(in IResultReceiver receiver, in Bundle receiverExtras, 587 int resultCode, in IBinder activityToken, int flags); 588 void dismissKeyguard(in IBinder token, in IKeyguardDismissCallback callback); 589 int restartUserInBackground(int userId); 590 591 /** Cancels the window transitions for the given task. */ 592 void cancelTaskWindowTransition(int taskId); 593 594 /** Cancels the thumbnail transitions for the given task. */ 595 void cancelTaskThumbnailTransition(int taskId); 596 597 /** 598 * @return a graphic buffer representing a screenshot of a task 599 */ 600 ActivityManager.TaskSnapshot getTaskSnapshot(int taskId); 601 602 void scheduleApplicationInfoChanged(in List<String> packageNames, int userId); 603 604 // WARNING: when these transactions are updated, check if they are any callers on the native 605 // side. If so, make sure they are using the correct transaction ids and arguments. 606 // If a transaction which will also be used on the native side is being inserted, add it 607 // alongside with other transactions of this kind at the top of this file. 608} 609