ActivityManagerNative.java revision 5e03e2ca7d25b899b129baad2dd5eca6bf99d88a
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.app; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName; 20dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentReceiver; 21dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentSender; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IntentFilter; 24fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackbornimport android.content.IntentSender; 25181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tateimport android.content.pm.ApplicationInfo; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ConfigurationInfo; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver; 2852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasaniimport android.content.pm.UserInfo; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Bitmap; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 343025ef332c29e255388f74b2afefe05f64bce07cDianne Hackbornimport android.os.Debug; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 37dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.ParcelFileDescriptor; 38dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.Parcelable; 39dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.RemoteException; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager; 41cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrickimport android.os.StrictMode; 42f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8Dianne Hackbornimport android.os.UserHandle; 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils; 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 45663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrickimport android.util.Singleton; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */ 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class ActivityManagerNative extends Binder implements IActivityManager 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Cast a Binder object into an activity manager interface, generating 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a proxy if needed. 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 57663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick static public IActivityManager asInterface(IBinder obj) { 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (obj == null) { 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IActivityManager in = 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (IActivityManager)obj.queryLocalInterface(descriptor); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (in != null) { 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return in; 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 66663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ActivityManagerProxy(obj); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 69663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve the system's default/global activity manager. 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 73663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick static public IActivityManager getDefault() { 74663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick return gDefault.get(); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Convenience for checking whether the system is ready. For internal use only. 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static public boolean isSystemReady() { 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!sSystemReady) { 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sSystemReady = getDefault().testIsSystemReady(); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sSystemReady; 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static boolean sSystemReady = false; 87663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Convenience for sending a sticky broadcast. For internal use only. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If you don't care about permission, use null. 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 925ac72a29593ab9a20337a2225df52bdf4754be02Dianne Hackborn static public void broadcastStickyIntent(Intent intent, String permission, int userId) { 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project getDefault().broadcastIntent( 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project null, intent, null, null, Activity.RESULT_OK, null, null, 965ac72a29593ab9a20337a2225df52bdf4754be02Dianne Hackborn null /*permission*/, false, true, userId); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static public void noteWakeupAlarm(PendingIntent ps) { 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project getDefault().noteWakeupAlarm(ps.getTarget()); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 108663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick public ActivityManagerNative() { 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project attachInterface(this, descriptor); 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean onTransact(int code, Parcel data, Parcel reply, int flags) 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (code) { 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_ACTIVITY_TRANSACTION: 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder resultTo = data.readStrongBinder(); 12392a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy String resultWho = data.readString(); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestCode = data.readInt(); 125a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int startFlags = data.readInt(); 12662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn String profileFile = data.readString(); 12762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn ParcelFileDescriptor profileFd = data.readInt() != 0 12862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn ? data.readFileDescriptor() : null; 129a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 130a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = startActivity(app, intent, resolvedType, 132a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn resultTo, resultWho, requestCode, startFlags, 133a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn profileFile, profileFd, options); 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(result); 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 138bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn 1398264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani case START_ACTIVITY_AS_USER_TRANSACTION: 1408264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani { 1418264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.enforceInterface(IActivityManager.descriptor); 1428264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani IBinder b = data.readStrongBinder(); 1438264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani IApplicationThread app = ApplicationThreadNative.asInterface(b); 1448264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Intent intent = Intent.CREATOR.createFromParcel(data); 1458264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String resolvedType = data.readString(); 1468264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani IBinder resultTo = data.readStrongBinder(); 1478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String resultWho = data.readString(); 1488264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int requestCode = data.readInt(); 1498264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int startFlags = data.readInt(); 1508264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String profileFile = data.readString(); 1518264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani ParcelFileDescriptor profileFd = data.readInt() != 0 1528264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani ? data.readFileDescriptor() : null; 1538264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Bundle options = data.readInt() != 0 1548264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani ? Bundle.CREATOR.createFromParcel(data) : null; 1558264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int userId = data.readInt(); 1568264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int result = startActivityAsUser(app, intent, resolvedType, 1578264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani resultTo, resultWho, requestCode, startFlags, 1588264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani profileFile, profileFd, options, userId); 1598264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.writeNoException(); 1608264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.writeInt(result); 1618264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani return true; 1628264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 1638264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani 1648f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn case START_ACTIVITY_AND_WAIT_TRANSACTION: 1658f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn { 1668f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1678f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn IBinder b = data.readStrongBinder(); 1688f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn IApplicationThread app = ApplicationThreadNative.asInterface(b); 1698f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn Intent intent = Intent.CREATOR.createFromParcel(data); 1708f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn String resolvedType = data.readString(); 1718f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn IBinder resultTo = data.readStrongBinder(); 17292a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy String resultWho = data.readString(); 1738f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn int requestCode = data.readInt(); 174a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int startFlags = data.readInt(); 17562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn String profileFile = data.readString(); 17662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn ParcelFileDescriptor profileFd = data.readInt() != 0 17762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn ? data.readFileDescriptor() : null; 178a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 179a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 1805e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userId = data.readInt(); 1818f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn WaitResult result = startActivityAndWait(app, intent, resolvedType, 182a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn resultTo, resultWho, requestCode, startFlags, 1835e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn profileFile, profileFd, options, userId); 1848f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn reply.writeNoException(); 1858f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn result.writeToParcel(reply, 0); 1868f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn return true; 1878f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn } 1888f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn 1892ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn case START_ACTIVITY_WITH_CONFIG_TRANSACTION: 1902ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn { 1912ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1922ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn IBinder b = data.readStrongBinder(); 1932ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn IApplicationThread app = ApplicationThreadNative.asInterface(b); 1942ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn Intent intent = Intent.CREATOR.createFromParcel(data); 1952ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn String resolvedType = data.readString(); 1962ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn IBinder resultTo = data.readStrongBinder(); 1972ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn String resultWho = data.readString(); 1982ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn int requestCode = data.readInt(); 199a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int startFlags = data.readInt(); 2002ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn Configuration config = Configuration.CREATOR.createFromParcel(data); 201a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 202a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 2034120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int userId = data.readInt(); 2042ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn int result = startActivityWithConfig(app, intent, resolvedType, 2054120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn resultTo, resultWho, requestCode, startFlags, config, options, userId); 2062ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn reply.writeNoException(); 2072ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn reply.writeInt(result); 2082ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn return true; 2092ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn } 2102ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn 211fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn case START_ACTIVITY_INTENT_SENDER_TRANSACTION: 212bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn { 213bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 214bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn IBinder b = data.readStrongBinder(); 215bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn IApplicationThread app = ApplicationThreadNative.asInterface(b); 216fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn IntentSender intent = IntentSender.CREATOR.createFromParcel(data); 217bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn Intent fillInIntent = null; 218bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn if (data.readInt() != 0) { 219bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn fillInIntent = Intent.CREATOR.createFromParcel(data); 220bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } 221bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn String resolvedType = data.readString(); 222bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn IBinder resultTo = data.readStrongBinder(); 223bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn String resultWho = data.readString(); 224bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn int requestCode = data.readInt(); 225bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn int flagsMask = data.readInt(); 226bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn int flagsValues = data.readInt(); 227a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 228a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 229fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn int result = startActivityIntentSender(app, intent, 230bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn fillInIntent, resolvedType, resultTo, resultWho, 231a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn requestCode, flagsMask, flagsValues, options); 232bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn reply.writeNoException(); 233bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn reply.writeInt(result); 234bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn return true; 235bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_NEXT_MATCHING_ACTIVITY_TRANSACTION: 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder callingActivity = data.readStrongBinder(); 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 242a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 243a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 244a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn boolean result = startNextMatchingActivity(callingActivity, intent, options); 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(result ? 1 : 0); 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 249ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case FINISH_ACTIVITY_TRANSACTION: { 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent resultData = null; 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode = data.readInt(); 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (data.readInt() != 0) { 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project resultData = Intent.CREATOR.createFromParcel(data); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = finishActivity(token, resultCode, resultData); 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case FINISH_SUB_ACTIVITY_TRANSACTION: { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resultWho = data.readString(); 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestCode = data.readInt(); 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project finishSubActivity(token, resultWho, requestCode); 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 274ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn case FINISH_ACTIVITY_AFFINITY_TRANSACTION: { 275ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 276ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn IBinder token = data.readStrongBinder(); 277ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn boolean res = finishActivityAffinity(token); 278ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn reply.writeNoException(); 279ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn reply.writeInt(res ? 1 : 0); 280ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn return true; 281ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn } 282ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn 283061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn case WILL_ACTIVITY_BE_VISIBLE_TRANSACTION: { 284061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 285061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn IBinder token = data.readStrongBinder(); 286061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn boolean res = willActivityBeVisible(token); 287061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn reply.writeNoException(); 288061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn reply.writeInt(res ? 1 : 0); 289061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn return true; 290061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn } 291061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case REGISTER_RECEIVER_TRANSACTION: 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b != null ? ApplicationThreadNative.asInterface(b) : null; 2986c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn String packageName = data.readString(); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b = data.readStrongBinder(); 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentReceiver rec 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = b != null ? IIntentReceiver.Stub.asInterface(b) : null; 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IntentFilter filter = IntentFilter.CREATOR.createFromParcel(data); 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String perm = data.readString(); 30420e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn int userId = data.readInt(); 30520e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn Intent intent = registerReceiver(app, packageName, rec, filter, perm, userId); 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (intent != null) { 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(1); 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(reply, 0); 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(0); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNREGISTER_RECEIVER_TRANSACTION: 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (b == null) { 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentReceiver rec = IIntentReceiver.Stub.asInterface(b); 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unregisterReceiver(rec); 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case BROADCAST_INTENT_TRANSACTION: 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b != null ? ApplicationThreadNative.asInterface(b) : null; 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b = data.readStrongBinder(); 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentReceiver resultTo = 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b != null ? IIntentReceiver.Stub.asInterface(b) : null; 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode = data.readInt(); 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resultData = data.readString(); 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle resultExtras = data.readBundle(); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String perm = data.readString(); 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean serialized = data.readInt() != 0; 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean sticky = data.readInt() != 0; 346742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani int userId = data.readInt(); 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = broadcastIntent(app, intent, resolvedType, resultTo, 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project resultCode, resultData, resultExtras, perm, 349742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani serialized, sticky, userId); 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNBROADCAST_INTENT_TRANSACTION: 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = b != null ? ApplicationThreadNative.asInterface(b) : null; 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 361742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani int userId = data.readInt(); 362742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani unbroadcastIntent(app, intent, userId); 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case FINISH_RECEIVER_TRANSACTION: { 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder who = data.readStrongBinder(); 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode = data.readInt(); 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resultData = data.readString(); 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle resultExtras = data.readBundle(); 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean resultAbort = data.readInt() != 0; 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (who != null) { 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project finishReceiver(who, resultCode, resultData, resultExtras, resultAbort); 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ATTACH_APPLICATION_TRANSACTION: { 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface( 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (app != null) { 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project attachApplication(app); 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ACTIVITY_IDLE_TRANSACTION: { 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 395e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn Configuration config = null; 396e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn if (data.readInt() != 0) { 397e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn config = Configuration.CREATOR.createFromParcel(data); 398e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn } 39962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn boolean stopProfiling = data.readInt() != 0; 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (token != null) { 40162f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn activityIdle(token, config, stopProfiling); 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ACTIVITY_PAUSED_TRANSACTION: { 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 4100aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn activityPaused(token); 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ACTIVITY_STOPPED_TRANSACTION: { 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 4180aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn Bundle map = data.readBundle(); 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bitmap thumbnail = data.readInt() != 0 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ? Bitmap.CREATOR.createFromParcel(data) : null; 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data); 4220aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn activityStopped(token, map, thumbnail, description); 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4274eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn case ACTIVITY_SLEPT_TRANSACTION: { 4284eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 4294eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn IBinder token = data.readStrongBinder(); 4304eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn activitySlept(token); 4314eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn reply.writeNoException(); 4324eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn return true; 4334eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn } 4344eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ACTIVITY_DESTROYED_TRANSACTION: { 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project activityDestroyed(token); 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_CALLING_PACKAGE_TRANSACTION: { 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = token != null ? getCallingPackage(token) : null; 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeString(res); 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_CALLING_ACTIVITY_TRANSACTION: { 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName cn = getCallingActivity(token); 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(cn, reply); 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_TASKS_TRANSACTION: { 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int maxNum = data.readInt(); 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder receiverBinder = data.readStrongBinder(); 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IThumbnailReceiver receiver = receiverBinder != null 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ? IThumbnailReceiver.Stub.asInterface(receiverBinder) 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project : null; 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List list = getTasks(maxNum, fl, receiver); 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = list != null ? list.size() : -1; 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(N); 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int i; 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (i=0; i<N; i++) { 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningTaskInfo info = 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (ActivityManager.RunningTaskInfo)list.get(i); 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project info.writeToParcel(reply, 0); 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_RECENT_TASKS_TRANSACTION: { 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int maxNum = data.readInt(); 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 4868264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int userId = data.readInt(); 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<ActivityManager.RecentTaskInfo> list = getRecentTasks(maxNum, 4888264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani fl, userId); 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeTypedList(list); 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 494f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn case GET_TASK_THUMBNAILS_TRANSACTION: { 495d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 496d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn int id = data.readInt(); 497f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn ActivityManager.TaskThumbnails bm = getTaskThumbnails(id); 498d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.writeNoException(); 499d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn if (bm != null) { 500d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.writeInt(1); 501d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn bm.writeToParcel(reply, 0); 502d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn } else { 503d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.writeInt(0); 504d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn } 505d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn return true; 506d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn } 507d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_SERVICES_TRANSACTION: { 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int maxNum = data.readInt(); 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List list = getServices(maxNum, fl); 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = list != null ? list.size() : -1; 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(N); 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int i; 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (i=0; i<N; i++) { 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningServiceInfo info = 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (ActivityManager.RunningServiceInfo)list.get(i); 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project info.writeToParcel(reply, 0); 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PROCESSES_IN_ERROR_STATE_TRANSACTION: { 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<ActivityManager.ProcessErrorStateInfo> list = getProcessesInErrorState(); 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeTypedList(list); 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_RUNNING_APP_PROCESSES_TRANSACTION: { 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<ActivityManager.RunningAppProcessInfo> list = getRunningAppProcesses(); 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeTypedList(list); 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 541f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu case GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION: { 542f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu data.enforceInterface(IActivityManager.descriptor); 543f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu List<ApplicationInfo> list = getRunningExternalApplications(); 544f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu reply.writeNoException(); 545f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu reply.writeTypedList(list); 546f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu return true; 547f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu } 548f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case MOVE_TASK_TO_FRONT_TRANSACTION: { 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int task = data.readInt(); 552621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn int fl = data.readInt(); 5538078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn Bundle options = data.readInt() != 0 5548078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 5558078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn moveTaskToFront(task, fl, options); 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case MOVE_TASK_TO_BACK_TRANSACTION: { 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int task = data.readInt(); 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project moveTaskToBack(task); 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION: { 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean nonRoot = data.readInt() != 0; 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = moveActivityTaskToBack(token, nonRoot); 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case MOVE_TASK_BACKWARDS_TRANSACTION: { 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int task = data.readInt(); 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project moveTaskBackwards(task); 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_TASK_FOR_ACTIVITY_TRANSACTION: { 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean onlyRoot = data.readInt() != 0; 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = token != null 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ? getTaskForActivity(token, onlyRoot) : -1; 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case REPORT_THUMBNAIL_TRANSACTION: { 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bitmap thumbnail = data.readInt() != 0 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ? Bitmap.CREATOR.createFromParcel(data) : null; 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data); 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reportThumbnail(token, thumbnail, description); 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_CONTENT_PROVIDER_TRANSACTION: { 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String name = data.readString(); 6136ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean stable = data.readInt() != 0; 6146ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn ContentProviderHolder cph = getContentProvider(app, name, stable); 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (cph != null) { 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(1); 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project cph.writeToParcel(reply, 0); 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(0); 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 62525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov case GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: { 62625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.enforceInterface(IActivityManager.descriptor); 62725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov String name = data.readString(); 62825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov IBinder token = data.readStrongBinder(); 62925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov ContentProviderHolder cph = getContentProviderExternal(name, token); 63025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeNoException(); 63125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov if (cph != null) { 63225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeInt(1); 63325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov cph.writeToParcel(reply, 0); 63425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } else { 63525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeInt(0); 63625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 63725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov return true; 63825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 63925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PUBLISH_CONTENT_PROVIDERS_TRANSACTION: { 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ContentProviderHolder> providers = 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.createTypedArrayList(ContentProviderHolder.CREATOR); 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project publishContentProviders(app, providers); 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6516ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn case REF_CONTENT_PROVIDER_TRANSACTION: { 6526ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 6536ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn IBinder b = data.readStrongBinder(); 6546ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn int stable = data.readInt(); 6556ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn int unstable = data.readInt(); 6566ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean res = refContentProvider(b, stable, unstable); 6576ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.writeNoException(); 6586ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.writeInt(res ? 1 : 0); 6596ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn return true; 6606ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 6616ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn 6626ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn case UNSTABLE_PROVIDER_DIED_TRANSACTION: { 6636ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 6646ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn IBinder b = data.readStrongBinder(); 6656ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn unstableProviderDied(b); 6666ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.writeNoException(); 6676ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn return true; 6686ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 6696ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case REMOVE_CONTENT_PROVIDER_TRANSACTION: { 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 6736ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean stable = data.readInt() != 0; 6746ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn removeContentProvider(b, stable); 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 67825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 67925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov case REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: { 68025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.enforceInterface(IActivityManager.descriptor); 68125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov String name = data.readString(); 68225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov IBinder token = data.readStrongBinder(); 68325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov removeContentProviderExternal(name, token); 68425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeNoException(); 68525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov return true; 68625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 68725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 688dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn case GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION: { 689dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 690dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn ComponentName comp = ComponentName.CREATOR.createFromParcel(data); 691dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn PendingIntent pi = getRunningServiceControlPanel(comp); 692dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn reply.writeNoException(); 693dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn PendingIntent.writePendingIntentOrNullToParcel(pi, reply); 694dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn return true; 695dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn } 696dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_SERVICE_TRANSACTION: { 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 7037767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn int userId = data.readInt(); 7047767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn ComponentName cn = startService(app, service, resolvedType, userId); 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(cn, reply); 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case STOP_SERVICE_TRANSACTION: { 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 7167767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn int userId = data.readInt(); 7177767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn int res = stopService(app, service, resolvedType, userId); 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case STOP_SERVICE_TOKEN_TRANSACTION: { 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName className = ComponentName.readFromParcel(data); 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int startId = data.readInt(); 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = stopServiceToken(className, token, startId); 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_SERVICE_FOREGROUND_TRANSACTION: { 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName className = ComponentName.readFromParcel(data); 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 738d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn int id = data.readInt(); 739d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn Notification notification = null; 740d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn if (data.readInt() != 0) { 741d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn notification = Notification.CREATOR.createFromParcel(data); 742d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn } 743d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn boolean removeNotification = data.readInt() != 0; 744d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn setServiceForeground(className, token, id, notification, removeNotification); 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case BIND_SERVICE_TRANSACTION: { 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b = data.readStrongBinder(); 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 75837ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani int userId = data.readInt(); 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IServiceConnection conn = IServiceConnection.Stub.asInterface(b); 76037ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani int res = bindService(app, token, service, resolvedType, conn, fl, userId); 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNBIND_SERVICE_TRANSACTION: { 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IServiceConnection conn = IServiceConnection.Stub.asInterface(b); 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = unbindService(conn); 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PUBLISH_SERVICE_TRANSACTION: { 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder service = data.readStrongBinder(); 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project publishService(token, intent, service); 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNBIND_FINISHED_TRANSACTION: { 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean doRebind = data.readInt() != 0; 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unbindFinished(token, intent, doRebind); 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SERVICE_DONE_EXECUTING_TRANSACTION: { 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 799f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int type = data.readInt(); 800f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int startId = data.readInt(); 801f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int res = data.readInt(); 802f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn serviceDoneExecuting(token, type, startId, res); 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_INSTRUMENTATION_TRANSACTION: { 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName className = ComponentName.readFromParcel(data); 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String profileFile = data.readString(); 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle arguments = data.readBundle(); 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IInstrumentationWatcher w = IInstrumentationWatcher.Stub.asInterface(b); 8155e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userId = data.readInt(); 8165e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn boolean res = startInstrumentation(className, profileFile, fl, arguments, w, userId); 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case FINISH_INSTRUMENTATION_TRANSACTION: { 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode = data.readInt(); 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle results = data.readBundle(); 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project finishInstrumentation(app, resultCode, results); 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_CONFIGURATION_TRANSACTION: { 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Configuration config = getConfiguration(); 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project config.writeToParcel(reply, 0); 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UPDATE_CONFIGURATION_TRANSACTION: { 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Configuration config = Configuration.CREATOR.createFromParcel(data); 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project updateConfiguration(config); 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_REQUESTED_ORIENTATION_TRANSACTION: { 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestedOrientation = data.readInt(); 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setRequestedOrientation(token, requestedOrientation); 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_REQUESTED_ORIENTATION_TRANSACTION: { 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int req = getRequestedOrientation(token); 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(req); 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION: { 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName cn = getActivityClassForToken(token); 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(cn, reply); 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PACKAGE_FOR_TOKEN_TRANSACTION: { 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeString(getPackageForToken(token)); 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_INTENT_SENDER_TRANSACTION: { 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int type = data.readInt(); 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName = data.readString(); 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resultWho = data.readString(); 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestCode = data.readInt(); 892621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Intent[] requestIntents; 893621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn String[] requestResolvedTypes; 894621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn if (data.readInt() != 0) { 895621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestIntents = data.createTypedArray(Intent.CREATOR); 896621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestResolvedTypes = data.createStringArray(); 897621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } else { 898621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestIntents = null; 899621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestResolvedTypes = null; 900621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 9027a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn Bundle options = data.readInt() != 0 9037a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 9044120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int userId = data.readInt(); 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender res = getIntentSender(type, packageName, token, 906621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn resultWho, requestCode, requestIntents, 9074120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn requestResolvedTypes, fl, options, userId); 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeStrongBinder(res != null ? res.asBinder() : null); 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CANCEL_INTENT_SENDER_TRANSACTION: { 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender r = IIntentSender.Stub.asInterface( 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project cancelIntentSender(r); 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION: { 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender r = IIntentSender.Stub.asInterface( 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = getPackageForIntentSender(r); 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeString(res); 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 932c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate case GET_UID_FOR_INTENT_SENDER_TRANSACTION: { 933c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.enforceInterface(IActivityManager.descriptor); 934c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate IIntentSender r = IIntentSender.Stub.asInterface( 935c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.readStrongBinder()); 936c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate int res = getUidForIntentSender(r); 937c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.writeNoException(); 938c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.writeInt(res); 939c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate return true; 940c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate } 941c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate 9424120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn case HANDLE_INCOMING_USER_TRANSACTION: { 9434120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 9444120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int callingPid = data.readInt(); 9454120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int callingUid = data.readInt(); 9464120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int userId = data.readInt(); 9474120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn boolean allowAll = data.readInt() != 0 ; 9484120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn boolean requireFull = data.readInt() != 0; 9494120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn String name = data.readString(); 9504120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn String callerPackage = data.readString(); 9514120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int res = handleIncomingUser(callingPid, callingUid, userId, allowAll, 9524120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn requireFull, name, callerPackage); 9534120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.writeNoException(); 9544120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.writeInt(res); 9554120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn return true; 9564120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn } 9574120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_PROCESS_LIMIT_TRANSACTION: { 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int max = data.readInt(); 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setProcessLimit(max); 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PROCESS_LIMIT_TRANSACTION: { 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int limit = getProcessLimit(); 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(limit); 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_PROCESS_FOREGROUND_TRANSACTION: { 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid = data.readInt(); 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isForeground = data.readInt() != 0; 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setProcessForeground(token, pid, isForeground); 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CHECK_PERMISSION_TRANSACTION: { 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String perm = data.readString(); 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid = data.readInt(); 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int uid = data.readInt(); 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = checkPermission(perm, pid, uid); 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CHECK_URI_PERMISSION_TRANSACTION: { 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.CREATOR.createFromParcel(data); 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid = data.readInt(); 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int uid = data.readInt(); 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode = data.readInt(); 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = checkUriPermission(uri, pid, uid, mode); 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CLEAR_APP_DATA_TRANSACTION: { 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName = data.readString(); 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IPackageDataObserver observer = IPackageDataObserver.Stub.asInterface( 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 1012742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani int userId = data.readInt(); 1013742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani boolean res = clearApplicationUserData(packageName, observer, userId); 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GRANT_URI_PERMISSION_TRANSACTION: { 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String targetPkg = data.readString(); 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.CREATOR.createFromParcel(data); 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode = data.readInt(); 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project grantUriPermission(app, targetPkg, uri, mode); 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case REVOKE_URI_PERMISSION_TRANSACTION: { 10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.CREATOR.createFromParcel(data); 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode = data.readInt(); 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project revokeUriPermission(app, uri, mode); 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SHOW_WAITING_FOR_DEBUGGER_TRANSACTION: { 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean waiting = data.readInt() != 0; 10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project showWaitingForDebugger(app, waiting); 10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_MEMORY_INFO_TRANSACTION: { 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project getMemoryInfo(mi); 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mi.writeToParcel(reply, 0); 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNHANDLED_BACK_TRANSACTION: { 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unhandledBack(); 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case OPEN_CONTENT_URI_TRANSACTION: { 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.parse(data.readString()); 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ParcelFileDescriptor pfd = openContentUri(uri); 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (pfd != null) { 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(1); 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project pfd.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(0); 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1081ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GOING_TO_SLEEP_TRANSACTION: { 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project goingToSleep(); 10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case WAKING_UP_TRANSACTION: { 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project wakingUp(); 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1096ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn case SET_LOCK_SCREEN_SHOWN_TRANSACTION: { 1097ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1098ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn setLockScreenShown(data.readInt() != 0); 1099ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn reply.writeNoException(); 1100ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn return true; 1101ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn } 1102ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_DEBUG_APP_TRANSACTION: { 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String pn = data.readString(); 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean wfd = data.readInt() != 0; 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean per = data.readInt() != 0; 11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setDebugApp(pn, wfd, per); 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_ALWAYS_FINISH_TRANSACTION: { 11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean enabled = data.readInt() != 0; 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setAlwaysFinish(enabled); 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1121b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn case SET_ACTIVITY_CONTROLLER_TRANSACTION: { 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 1123b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn IActivityController watcher = IActivityController.Stub.asInterface( 11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 1125b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn setActivityController(watcher); 11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ENTER_SAFE_MODE_TRANSACTION: { 11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project enterSafeMode(); 11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case NOTE_WAKEUP_ALARM_TRANSACTION: { 11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender is = IIntentSender.Stub.asInterface( 11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project noteWakeupAlarm(is); 11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1145e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu case KILL_PIDS_TRANSACTION: { 11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int[] pids = data.createIntArray(); 1148e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu String reason = data.readString(); 1149648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn boolean secure = data.readInt() != 0; 1150648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn boolean res = killPids(pids, reason, secure); 11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1156b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey case KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION: { 1157b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1158b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey String reason = data.readString(); 1159b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey boolean res = killProcessesBelowForeground(reason); 1160b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey reply.writeNoException(); 1161b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey reply.writeInt(res ? 1 : 0); 1162b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey return true; 1163b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey } 1164b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey 11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_RUNNING_TRANSACTION: { 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String pkg = data.readString(); 11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String cls = data.readString(); 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String action = data.readString(); 11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String indata = data.readString(); 11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project startRunning(pkg, cls, action, indata); 11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 117660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor case HANDLE_APPLICATION_CRASH_TRANSACTION: { 117760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.enforceInterface(IActivityManager.descriptor); 117860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor IBinder app = data.readStrongBinder(); 117960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data); 118060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor handleApplicationCrash(app, ci); 118160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.writeNoException(); 118260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor return true; 118360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor } 118460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor 118560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor case HANDLE_APPLICATION_WTF_TRANSACTION: { 11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder app = data.readStrongBinder(); 11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String tag = data.readString(); 1189b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data); 119060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor boolean res = handleApplicationWtf(app, tag, ci); 11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 119260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.writeInt(res ? 1 : 0); 11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1195b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor 1196438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick case HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION: { 1197438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.enforceInterface(IActivityManager.descriptor); 1198438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick IBinder app = data.readStrongBinder(); 119946d42387464a651268648659e91d022566d4844cBrad Fitzpatrick int violationMask = data.readInt(); 1200cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick StrictMode.ViolationInfo info = new StrictMode.ViolationInfo(data); 1201cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick handleApplicationStrictModeViolation(app, violationMask, info); 1202438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick reply.writeNoException(); 1203438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick return true; 1204438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick } 1205438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick 12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SIGNAL_PERSISTENT_PROCESSES_TRANSACTION: { 12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int sig = data.readInt(); 12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project signalPersistentProcesses(sig); 12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 121403abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn case KILL_BACKGROUND_PROCESSES_TRANSACTION: { 121503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName = data.readString(); 121703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn killBackgroundProcesses(packageName); 121803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn reply.writeNoException(); 121903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn return true; 122003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn } 1221e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 1222e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn case KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION: { 1223e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1224e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn killAllBackgroundProcesses(); 1225e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn reply.writeNoException(); 1226e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn return true; 1227e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn } 122803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn 122903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn case FORCE_STOP_PACKAGE_TRANSACTION: { 123003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 123103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn String packageName = data.readString(); 123203abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn forceStopPackage(packageName); 12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 123627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn 123727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn case GET_MY_MEMORY_STATE_TRANSACTION: { 123827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 123927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn ActivityManager.RunningAppProcessInfo info = 124027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn new ActivityManager.RunningAppProcessInfo(); 124127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn getMyMemoryState(info); 124227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn reply.writeNoException(); 124327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn info.writeToParcel(reply, 0); 124427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn return true; 124527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn } 124627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn 12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_DEVICE_CONFIGURATION_TRANSACTION: { 12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ConfigurationInfo config = getDeviceConfigurationInfo(); 12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project config.writeToParcel(reply, 0); 12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1255f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project case PROFILE_CONTROL_TRANSACTION: { 1256f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 1257f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project String process = data.readString(); 1258f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project boolean start = data.readInt() != 0; 12599a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy int profileType = data.readInt(); 1260f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project String path = data.readString(); 12619c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn ParcelFileDescriptor fd = data.readInt() != 0 12629c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn ? data.readFileDescriptor() : null; 12637eabe55db6b113f83c2cefcd06812648927de877Romain Guy boolean res = profileControl(process, start, path, fd, profileType); 1264f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.writeNoException(); 1265f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.writeInt(res ? 1 : 0); 1266f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project return true; 1267f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project } 1268f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project 126955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn case SHUTDOWN_TRANSACTION: { 127055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 127155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn boolean res = shutdown(data.readInt()); 127255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.writeNoException(); 127355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.writeInt(res ? 1 : 0); 127455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn return true; 127555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn } 127655280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn 127795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn case STOP_APP_SWITCHES_TRANSACTION: { 127895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 127995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn stopAppSwitches(); 128095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.writeNoException(); 128195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn return true; 128295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 128395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 128495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn case RESUME_APP_SWITCHES_TRANSACTION: { 128595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 128695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn resumeAppSwitches(); 128795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.writeNoException(); 128895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn return true; 128995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 129095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PEEK_SERVICE_TRANSACTION: { 12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder binder = peekService(service, resolvedType); 12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeStrongBinder(binder); 12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1300181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 1301181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate case START_BACKUP_AGENT_TRANSACTION: { 1302181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1303181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data); 1304181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate int backupRestoreMode = data.readInt(); 1305181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate boolean success = bindBackupAgent(info, backupRestoreMode); 1306181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeNoException(); 1307181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeInt(success ? 1 : 0); 1308181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return true; 1309181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 1310181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 1311181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate case BACKUP_AGENT_CREATED_TRANSACTION: { 1312181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1313181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate String packageName = data.readString(); 1314181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate IBinder agent = data.readStrongBinder(); 1315181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate backupAgentCreated(packageName, agent); 1316181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeNoException(); 1317181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return true; 1318181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 1319181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 1320181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate case UNBIND_BACKUP_AGENT_TRANSACTION: { 1321181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1322181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data); 1323181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate unbindBackupAgent(info); 1324181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeNoException(); 1325181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return true; 1326181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 1327b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn 13285e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn case KILL_APPLICATION_WITH_APPID_TRANSACTION: { 1329261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.enforceInterface(IActivityManager.descriptor); 1330261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu String pkg = data.readString(); 13315e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int appid = data.readInt(); 13325e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn killApplicationWithAppId(pkg, appid); 1333261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu reply.writeNoException(); 1334261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu return true; 1335261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu } 1336a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn 1337a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn case CLOSE_SYSTEM_DIALOGS_TRANSACTION: { 1338a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1339a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn String reason = data.readString(); 1340a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn closeSystemDialogs(reason); 1341a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn reply.writeNoException(); 1342a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn return true; 1343a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn } 13443025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn 13453025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn case GET_PROCESS_MEMORY_INFO_TRANSACTION: { 13463025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 13474f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn int[] pids = data.createIntArray(); 13484f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn Debug.MemoryInfo[] res = getProcessMemoryInfo(pids); 13493025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn reply.writeNoException(); 13504f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn reply.writeTypedArray(res, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 13513025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn return true; 13523025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn } 13535e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate 13545e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate case KILL_APPLICATION_PROCESS_TRANSACTION: { 13555e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.enforceInterface(IActivityManager.descriptor); 13565e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate String processName = data.readString(); 13575e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate int uid = data.readInt(); 13585e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate killApplicationProcess(processName, uid); 13595e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate reply.writeNoException(); 13605e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate return true; 13615e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate } 13623b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn 13633b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn case OVERRIDE_PENDING_TRANSITION_TRANSACTION: { 13643b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 13653b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn IBinder token = data.readStrongBinder(); 13663b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn String packageName = data.readString(); 13673b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn int enterAnim = data.readInt(); 13683b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn int exitAnim = data.readInt(); 13693b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn overridePendingTransition(token, packageName, enterAnim, exitAnim); 13709327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.writeNoException(); 13719327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn return true; 13729327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } 13739327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn 13749327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn case IS_USER_A_MONKEY_TRANSACTION: { 13759327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 13767e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean areThey = isUserAMonkey(); 13779327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.writeNoException(); 13787e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeInt(areThey ? 1 : 0); 13793b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn return true; 13803b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn } 1381860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn 1382860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn case FINISH_HEAVY_WEIGHT_APP_TRANSACTION: { 1383860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1384860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn finishHeavyWeightApp(); 1385860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn reply.writeNoException(); 1386860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn return true; 1387860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn } 138869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 138969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler case IS_IMMERSIVE_TRANSACTION: { 139069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.enforceInterface(IActivityManager.descriptor); 139169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler IBinder token = data.readStrongBinder(); 13927e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean isit = isImmersive(token); 139369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.writeNoException(); 13947e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeInt(isit ? 1 : 0); 139569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return true; 139669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 139769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 139869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler case SET_IMMERSIVE_TRANSACTION: { 139969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.enforceInterface(IActivityManager.descriptor); 140069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler IBinder token = data.readStrongBinder(); 140169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler boolean imm = data.readInt() == 1; 140269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler setImmersive(token, imm); 140369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.writeNoException(); 140469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return true; 140569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 140669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 140769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler case IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION: { 140869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.enforceInterface(IActivityManager.descriptor); 14097e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean isit = isTopActivityImmersive(); 141069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.writeNoException(); 14117e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeInt(isit ? 1 : 0); 141269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return true; 141369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 141469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 14159d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn case CRASH_APPLICATION_TRANSACTION: { 14169d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 14179d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn int uid = data.readInt(); 14189d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn int initialPid = data.readInt(); 14199d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn String packageName = data.readString(); 14209d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn String message = data.readString(); 14219d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn crashApplication(uid, initialPid, packageName, message); 14229d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn reply.writeNoException(); 14239d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn return true; 14249d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn } 1425cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn 1426cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn case GET_PROVIDER_MIME_TYPE_TRANSACTION: { 1427cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1428cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn Uri uri = Uri.CREATOR.createFromParcel(data); 14295e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userId = data.readInt(); 14305e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn String type = getProviderMimeType(uri, userId); 1431cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.writeNoException(); 1432cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.writeString(type); 1433cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn return true; 1434cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn } 1435cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn 14367e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn case NEW_URI_PERMISSION_OWNER_TRANSACTION: { 14377e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 14387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn String name = data.readString(); 14397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder perm = newUriPermissionOwner(name); 14407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeNoException(); 14417e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeStrongBinder(perm); 14427e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return true; 14437e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 14447e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 14457e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn case GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION: { 14467e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 14477e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder owner = data.readStrongBinder(); 14487e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int fromUid = data.readInt(); 14497e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn String targetPkg = data.readString(); 14507e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Uri uri = Uri.CREATOR.createFromParcel(data); 14517e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int mode = data.readInt(); 14527e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn grantUriPermissionFromOwner(owner, fromUid, targetPkg, uri, mode); 14537e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeNoException(); 14547e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return true; 14557e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 14567e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 14577e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn case REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION: { 14587e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 14597e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder owner = data.readStrongBinder(); 14607e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Uri uri = null; 14617e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn if (data.readInt() != 0) { 14627e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Uri.CREATOR.createFromParcel(data); 14637e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 14647e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int mode = data.readInt(); 14657e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn revokeUriPermissionFromOwner(owner, uri, mode); 14667e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeNoException(); 14677e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return true; 14687e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 14699d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn 147090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn case CHECK_GRANT_URI_PERMISSION_TRANSACTION: { 147190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 147290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int callingUid = data.readInt(); 147390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn String targetPkg = data.readString(); 147490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Uri uri = Uri.CREATOR.createFromParcel(data); 147590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int modeFlags = data.readInt(); 147690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int res = checkGrantUriPermission(callingUid, targetPkg, uri, modeFlags); 147790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.writeNoException(); 147890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.writeInt(res); 147990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn return true; 148090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn } 148190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn 1482824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden case DUMP_HEAP_TRANSACTION: { 1483824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.enforceInterface(IActivityManager.descriptor); 1484824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden String process = data.readString(); 1485824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden boolean managed = data.readInt() != 0; 1486824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden String path = data.readString(); 1487824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden ParcelFileDescriptor fd = data.readInt() != 0 1488824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden ? data.readFileDescriptor() : null; 1489824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden boolean res = dumpHeap(process, managed, path, fd); 1490824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.writeNoException(); 1491824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.writeInt(res ? 1 : 0); 1492824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden return true; 1493824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } 1494824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden 1495621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn case START_ACTIVITIES_TRANSACTION: 1496621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn { 1497621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1498621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn IBinder b = data.readStrongBinder(); 1499621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn IApplicationThread app = ApplicationThreadNative.asInterface(b); 1500621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Intent[] intents = data.createTypedArray(Intent.CREATOR); 1501621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn String[] resolvedTypes = data.createStringArray(); 1502621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn IBinder resultTo = data.readStrongBinder(); 1503a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 1504a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 1505a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int result = startActivities(app, intents, resolvedTypes, resultTo, 1506a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options); 1507621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.writeNoException(); 1508621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.writeInt(result); 1509621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn return true; 1510621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } 1511621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn 15120f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: 15130f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn { 15140f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 15150f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = getFrontActivityScreenCompatMode(); 15160f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeNoException(); 15170f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeInt(mode); 15180f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return true; 15190f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 15200f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 15210f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: 15220f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn { 15230f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 15240f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = data.readInt(); 15250f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn setFrontActivityScreenCompatMode(mode); 15260f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeNoException(); 15270f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeInt(mode); 15280f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return true; 15290f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 15300f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 15310f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: 15320f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn { 15330f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 15340f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn String pkg = data.readString(); 15350f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = getPackageScreenCompatMode(pkg); 15360f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeNoException(); 15370f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeInt(mode); 15380f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return true; 15390f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 15400f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 1541e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: 1542e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn { 1543e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1544e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn String pkg = data.readString(); 15450f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = data.readInt(); 15460f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn setPackageScreenCompatMode(pkg, mode); 1547e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn reply.writeNoException(); 1548e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn return true; 1549e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn } 1550aa9d84c37e05f696ec158dac98ce38cf41e18314Dianne Hackborn 15514b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani case SWITCH_USER_TRANSACTION: { 15524b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.enforceInterface(IActivityManager.descriptor); 15534b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani int userid = data.readInt(); 15544b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani boolean result = switchUser(userid); 15554b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.writeNoException(); 15564b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.writeInt(result ? 1 : 0); 15574b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani return true; 15584b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani } 155952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 156080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn case STOP_USER_TRANSACTION: { 156180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 156280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn int userid = data.readInt(); 156380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn IStopUserCallback callback = IStopUserCallback.Stub.asInterface( 156480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.readStrongBinder()); 156580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn int result = stopUser(userid, callback); 156680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.writeNoException(); 156780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.writeInt(result); 156880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn return true; 156980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn } 157080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 157152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani case GET_CURRENT_USER_TRANSACTION: { 157252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani data.enforceInterface(IActivityManager.descriptor); 157352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani UserInfo userInfo = getCurrentUser(); 157452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani reply.writeNoException(); 157552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani userInfo.writeToParcel(reply, 0); 157652f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani return true; 157752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani } 157852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 15795e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn case IS_USER_RUNNING_TRANSACTION: { 15805e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 15815e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userid = data.readInt(); 15825e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn boolean result = isUserRunning(userid); 15835e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.writeNoException(); 15845e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.writeInt(result ? 1 : 0); 15855e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn return true; 15865e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn } 15875e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn 15880c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn case REMOVE_SUB_TASK_TRANSACTION: 15890c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn { 15900c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 15910c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn int taskId = data.readInt(); 15920c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn int subTaskIndex = data.readInt(); 15930c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn boolean result = removeSubTask(taskId, subTaskIndex); 15940c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.writeNoException(); 15950c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.writeInt(result ? 1 : 0); 15960c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn return true; 15970c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn } 15980c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn 15990c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn case REMOVE_TASK_TRANSACTION: 16000c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn { 16010c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 16020c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn int taskId = data.readInt(); 16030c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn int fl = data.readInt(); 16040c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn boolean result = removeTask(taskId, fl); 16050c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.writeNoException(); 16060c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.writeInt(result ? 1 : 0); 16070c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn return true; 16080c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn } 16094b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani 1610a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey case REGISTER_PROCESS_OBSERVER_TRANSACTION: { 1611a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1612a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey IProcessObserver observer = IProcessObserver.Stub.asInterface( 1613a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.readStrongBinder()); 1614a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey registerProcessObserver(observer); 1615a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey return true; 1616a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 1617a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 1618a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey case UNREGISTER_PROCESS_OBSERVER_TRANSACTION: { 1619a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1620a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey IProcessObserver observer = IProcessObserver.Stub.asInterface( 1621a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.readStrongBinder()); 1622a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey unregisterProcessObserver(observer); 1623a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey return true; 1624a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 1625a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 162636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn case GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION: 162736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn { 162836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 162936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn String pkg = data.readString(); 163036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn boolean ask = getPackageAskScreenCompat(pkg); 163136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.writeNoException(); 163236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.writeInt(ask ? 1 : 0); 163336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn return true; 163436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 163536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 163636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn case SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION: 163736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn { 163836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 163936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn String pkg = data.readString(); 164036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn boolean ask = data.readInt() != 0; 164136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn setPackageAskScreenCompat(pkg, ask); 164236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.writeNoException(); 164336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn return true; 164436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 164536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 16466c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn case IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION: { 16476c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 16486c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn IIntentSender r = IIntentSender.Stub.asInterface( 16496c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.readStrongBinder()); 16506c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn boolean res = isIntentSenderTargetedToPackage(r); 16516c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.writeNoException(); 16526c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.writeInt(res ? 1 : 0); 16536c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn return true; 16546c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn } 16556c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn 16561927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn case IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION: { 16571927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 16581927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn IIntentSender r = IIntentSender.Stub.asInterface( 16591927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.readStrongBinder()); 16601927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn boolean res = isIntentSenderAnActivity(r); 16611927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.writeNoException(); 16621927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.writeInt(res ? 1 : 0); 16631927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn return true; 16641927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn } 16651927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn 166631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn case UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION: { 166731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 166831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn Configuration config = Configuration.CREATOR.createFromParcel(data); 166931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn updatePersistentConfiguration(config); 167031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn reply.writeNoException(); 167131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn return true; 167231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn } 167331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn 1674b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn case GET_PROCESS_PSS_TRANSACTION: { 1675b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1676b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn int[] pids = data.createIntArray(); 1677b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn long[] pss = getProcessPss(pids); 1678b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.writeNoException(); 1679b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.writeLongArray(pss); 1680b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn return true; 1681b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn } 1682b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn 1683661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn case SHOW_BOOT_MESSAGE_TRANSACTION: { 1684661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1685661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn CharSequence msg = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data); 1686661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn boolean always = data.readInt() != 0; 1687661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn showBootMessage(msg, always); 1688661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn reply.writeNoException(); 1689661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn return true; 1690661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn } 1691661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn 169290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn case DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION: { 169390c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 169490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn dismissKeyguardOnNextActivity(); 169590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn reply.writeNoException(); 169690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn return true; 169790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn } 169890c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn 1699dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell case TARGET_TASK_AFFINITY_MATCHES_ACTIVITY_TRANSACTION: { 1700dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.enforceInterface(IActivityManager.descriptor); 1701dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell IBinder token = data.readStrongBinder(); 1702dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell String destAffinity = data.readString(); 1703dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean res = targetTaskAffinityMatchesActivity(token, destAffinity); 1704dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeNoException(); 1705dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeInt(res ? 1 : 0); 1706dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return true; 1707dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 1708dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 1709dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell case NAVIGATE_UP_TO_TRANSACTION: { 1710dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.enforceInterface(IActivityManager.descriptor); 1711dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell IBinder token = data.readStrongBinder(); 1712dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Intent target = Intent.CREATOR.createFromParcel(data); 1713dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell int resultCode = data.readInt(); 1714dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Intent resultData = null; 1715dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell if (data.readInt() != 0) { 1716dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell resultData = Intent.CREATOR.createFromParcel(data); 1717dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 1718dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean res = navigateUpTo(token, target, resultCode, resultData); 1719dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeNoException(); 1720dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeInt(res ? 1 : 0); 1721dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return true; 1722dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 1723dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 17245320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn case GET_LAUNCHED_FROM_UID_TRANSACTION: { 17255320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 17265320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn IBinder token = data.readStrongBinder(); 17275320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn int res = getLaunchedFromUid(token); 17285320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.writeNoException(); 17295320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.writeInt(res); 17305320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn return true; 17315320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn } 17325320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn 17339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1734663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 17359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return super.onTransact(code, data, reply, flags); 17369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 17379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1738663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick public IBinder asBinder() { 17399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return this; 17409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 17419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1742663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick private static final Singleton<IActivityManager> gDefault = new Singleton<IActivityManager>() { 1743663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick protected IActivityManager create() { 1744663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick IBinder b = ServiceManager.getService("activity"); 174543a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) { 1746663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick Log.v("ActivityManager", "default service binder = " + b); 1747663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick } 1748663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick IActivityManager am = asInterface(b); 174943a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) { 1750663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick Log.v("ActivityManager", "default service = " + am); 1751663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick } 1752663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick return am; 1753663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick } 1754663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick }; 17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass ActivityManagerProxy implements IActivityManager 17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ActivityManagerProxy(IBinder remote) 17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote = remote; 17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 176392a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy 17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBinder asBinder() 17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mRemote; 17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 176892a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy 17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int startActivity(IApplicationThread caller, Intent intent, 1770a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn String resolvedType, IBinder resultTo, String resultWho, int requestCode, 1771a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int startFlags, String profileFile, 1772a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ParcelFileDescriptor profileFd, Bundle options) throws RemoteException { 17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 17779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(resultTo); 17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultWho); 17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestCode); 1782a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(startFlags); 178362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeString(profileFile); 178462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn if (profileFd != null) { 178562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(1); 178662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 178762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } else { 178862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(0); 178962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } 1790a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 1791a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 1792a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 1793a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 1794a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 1795a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); 17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = reply.readInt(); 17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 18009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 18019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 18029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 18038264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani 18048264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani public int startActivityAsUser(IApplicationThread caller, Intent intent, 18058264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String resolvedType, IBinder resultTo, String resultWho, int requestCode, 18068264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int startFlags, String profileFile, 18078264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani ParcelFileDescriptor profileFd, Bundle options, int userId) throws RemoteException { 18088264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Parcel data = Parcel.obtain(); 18098264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Parcel reply = Parcel.obtain(); 18108264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInterfaceToken(IActivityManager.descriptor); 18118264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeStrongBinder(caller != null ? caller.asBinder() : null); 18128264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani intent.writeToParcel(data, 0); 18138264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeString(resolvedType); 18148264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeStrongBinder(resultTo); 18158264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeString(resultWho); 18168264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(requestCode); 18178264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(startFlags); 18188264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeString(profileFile); 18198264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani if (profileFd != null) { 18208264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(1); 18218264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 18228264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } else { 18238264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(0); 18248264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 18258264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani if (options != null) { 18268264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(1); 18278264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani options.writeToParcel(data, 0); 18288264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } else { 18298264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(0); 18308264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 18318264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(userId); 18328264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani mRemote.transact(START_ACTIVITY_AS_USER_TRANSACTION, data, reply, 0); 18338264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.readException(); 18348264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int result = reply.readInt(); 18358264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.recycle(); 18368264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.recycle(); 18378264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani return result; 18388264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 18398f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn public WaitResult startActivityAndWait(IApplicationThread caller, Intent intent, 1840a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn String resolvedType, IBinder resultTo, String resultWho, 1841a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int requestCode, int startFlags, String profileFile, 18425e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn ParcelFileDescriptor profileFd, Bundle options, int userId) throws RemoteException { 18438f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn Parcel data = Parcel.obtain(); 18448f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn Parcel reply = Parcel.obtain(); 18458f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 18468f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 18478f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn intent.writeToParcel(data, 0); 18488f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeString(resolvedType); 18498f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeStrongBinder(resultTo); 18508f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeString(resultWho); 18518f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeInt(requestCode); 1852a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(startFlags); 185362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeString(profileFile); 185462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn if (profileFd != null) { 185562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(1); 185662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 185762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } else { 185862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(0); 185962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } 1860a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 1861a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 1862a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 1863a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 1864a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 1865a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 18665e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userId); 18678f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn mRemote.transact(START_ACTIVITY_AND_WAIT_TRANSACTION, data, reply, 0); 18688f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn reply.readException(); 18698f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn WaitResult result = WaitResult.CREATOR.createFromParcel(reply); 18708f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn reply.recycle(); 18718f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.recycle(); 18728f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn return result; 18738f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn } 18742ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn public int startActivityWithConfig(IApplicationThread caller, Intent intent, 1875a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn String resolvedType, IBinder resultTo, String resultWho, 1876a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int requestCode, int startFlags, Configuration config, 18774120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Bundle options, int userId) throws RemoteException { 18782ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn Parcel data = Parcel.obtain(); 18792ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn Parcel reply = Parcel.obtain(); 18802ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 18812ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 18822ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn intent.writeToParcel(data, 0); 18832ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeString(resolvedType); 18842ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeStrongBinder(resultTo); 18852ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeString(resultWho); 18862ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeInt(requestCode); 1887a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(startFlags); 18882ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn config.writeToParcel(data, 0); 1889a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 1890a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 1891a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 1892a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 1893a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 1894a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 18954120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(userId); 18962ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); 18972ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn reply.readException(); 18982ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn int result = reply.readInt(); 18992ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn reply.recycle(); 19002ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.recycle(); 19012ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn return result; 19022ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn } 1903fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn public int startActivityIntentSender(IApplicationThread caller, 1904fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn IntentSender intent, Intent fillInIntent, String resolvedType, 1905bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn IBinder resultTo, String resultWho, int requestCode, 1906a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int flagsMask, int flagsValues, Bundle options) throws RemoteException { 1907bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn Parcel data = Parcel.obtain(); 1908bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn Parcel reply = Parcel.obtain(); 1909bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 1910bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 1911bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn intent.writeToParcel(data, 0); 1912bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn if (fillInIntent != null) { 1913bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(1); 1914bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn fillInIntent.writeToParcel(data, 0); 1915bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } else { 1916bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(0); 1917bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } 1918bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeString(resolvedType); 1919bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeStrongBinder(resultTo); 1920bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeString(resultWho); 1921bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(requestCode); 1922bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(flagsMask); 1923bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(flagsValues); 1924a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 1925a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 1926a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 1927a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 1928a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 1929a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 1930fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn mRemote.transact(START_ACTIVITY_INTENT_SENDER_TRANSACTION, data, reply, 0); 1931bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn reply.readException(); 1932bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn int result = reply.readInt(); 1933bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn reply.recycle(); 1934bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.recycle(); 1935bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn return result; 1936bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } 19379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean startNextMatchingActivity(IBinder callingActivity, 1938a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Intent intent, Bundle options) throws RemoteException { 19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 19409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(callingActivity); 19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 1944a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 1945a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 1946a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 1947a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 1948a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 1949a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 19509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_NEXT_MATCHING_ACTIVITY_TRANSACTION, data, reply, 0); 19519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 19529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = reply.readInt(); 19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result != 0; 19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean finishActivity(IBinder token, int resultCode, Intent resultData) 19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 19619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 19649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (resultData != null) { 19659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(1); 19669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project resultData.writeToParcel(data, 0); 19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(0); 19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_ACTIVITY_TRANSACTION, data, reply, 0); 19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 19729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 19739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 19749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException 19789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 19799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 19809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 19819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 19829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 19839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultWho); 19849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestCode); 19859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_SUB_ACTIVITY_TRANSACTION, data, reply, 0); 19869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 19879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 19889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 19899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1990ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn public boolean finishActivityAffinity(IBinder token) throws RemoteException { 1991ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn Parcel data = Parcel.obtain(); 1992ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn Parcel reply = Parcel.obtain(); 1993ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 1994ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.writeStrongBinder(token); 1995ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn mRemote.transact(FINISH_ACTIVITY_AFFINITY_TRANSACTION, data, reply, 0); 1996ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn reply.readException(); 1997ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn boolean res = reply.readInt() != 0; 1998ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.recycle(); 1999ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn reply.recycle(); 2000ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn return res; 2001ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn } 2002061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn public boolean willActivityBeVisible(IBinder token) throws RemoteException { 2003061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn Parcel data = Parcel.obtain(); 2004061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn Parcel reply = Parcel.obtain(); 2005061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2006061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.writeStrongBinder(token); 2007061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn mRemote.transact(WILL_ACTIVITY_BE_VISIBLE_TRANSACTION, data, reply, 0); 2008061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn reply.readException(); 2009061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn boolean res = reply.readInt() != 0; 2010061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.recycle(); 2011061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn reply.recycle(); 2012061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn return res; 2013061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn } 20146c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn public Intent registerReceiver(IApplicationThread caller, String packageName, 20159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentReceiver receiver, 201620e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn IntentFilter filter, String perm, int userId) throws RemoteException 20179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 20189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 20199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 20209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 20219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 20226c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.writeString(packageName); 20239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(receiver != null ? receiver.asBinder() : null); 20249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project filter.writeToParcel(data, 0); 20259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(perm); 202620e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn data.writeInt(userId); 20279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REGISTER_RECEIVER_TRANSACTION, data, reply, 0); 20289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 20299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = null; 20309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int haveIntent = reply.readInt(); 20319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (haveIntent != 0) { 20329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent = Intent.CREATOR.createFromParcel(reply); 20339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 20349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 20359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 20369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return intent; 20379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 20389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException 20399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 20409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 20419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 20429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 20439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(receiver.asBinder()); 20449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNREGISTER_RECEIVER_TRANSACTION, data, reply, 0); 20459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 20469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 20479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 20489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 20499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int broadcastIntent(IApplicationThread caller, 20509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent, String resolvedType, IIntentReceiver resultTo, 20519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode, String resultData, Bundle map, 20529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String requiredPermission, boolean serialized, 2053742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani boolean sticky, int userId) throws RemoteException 20549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 20559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 20569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 20579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 20589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 20599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 20609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 20619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(resultTo != null ? resultTo.asBinder() : null); 20629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 20639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultData); 20649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(map); 20659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(requiredPermission); 20669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(serialized ? 1 : 0); 20679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(sticky ? 1 : 0); 2068742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani data.writeInt(userId); 20699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(BROADCAST_INTENT_TRANSACTION, data, reply, 0); 20709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 20719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 20729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 20739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 20749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 20759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2076742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani public void unbroadcastIntent(IApplicationThread caller, Intent intent, int userId) 2077742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani throws RemoteException 20789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 20799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 20809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 20819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 20829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 20839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 2084742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani data.writeInt(userId); 20859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNBROADCAST_INTENT_TRANSACTION, data, reply, 0); 20869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 20879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 20889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 20899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 20909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException 20919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 20929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 20939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 20949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 20959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(who); 20969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 20979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultData); 20989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(map); 20999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(abortBroadcast ? 1 : 0); 21009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_RECEIVER_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 21019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 21059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void attachApplication(IApplicationThread app) throws RemoteException 21069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 21079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 21089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 21099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 21109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(app.asBinder()); 21119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ATTACH_APPLICATION_TRANSACTION, data, reply, 0); 21129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 211662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn public void activityIdle(IBinder token, Configuration config, boolean stopProfiling) 211762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn throws RemoteException 21189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 21199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 21209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 21219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 21229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 2123e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn if (config != null) { 2124e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn data.writeInt(1); 2125e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn config.writeToParcel(data, 0); 2126e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn } else { 2127e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn data.writeInt(0); 2128e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn } 212962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(stopProfiling ? 1 : 0); 21309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_IDLE_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 21319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 21350aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn public void activityPaused(IBinder token) throws RemoteException 21369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 21379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 21389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 21399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 21409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 21419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_PAUSED_TRANSACTION, data, reply, 0); 21429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 21460aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn public void activityStopped(IBinder token, Bundle state, 21470aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn Bitmap thumbnail, CharSequence description) throws RemoteException 21489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 21499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 21509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 21519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 21529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 21530aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn data.writeBundle(state); 21549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (thumbnail != null) { 21559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(1); 21569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project thumbnail.writeToParcel(data, 0); 21579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 21589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(0); 21599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 21609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TextUtils.writeToParcel(description, data, 0); 21619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_STOPPED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 21629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 21664eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn public void activitySlept(IBinder token) throws RemoteException 21674eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn { 21684eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn Parcel data = Parcel.obtain(); 21694eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn Parcel reply = Parcel.obtain(); 21704eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 21714eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.writeStrongBinder(token); 21724eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn mRemote.transact(ACTIVITY_SLEPT_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 21734eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn reply.readException(); 21744eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.recycle(); 21754eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn reply.recycle(); 21764eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn } 21779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void activityDestroyed(IBinder token) throws RemoteException 21789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 21799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 21809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 21819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 21829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 21839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_DESTROYED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 21849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 21889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getCallingPackage(IBinder token) throws RemoteException 21899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 21909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 21919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 21929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 21939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 21949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CALLING_PACKAGE_TRANSACTION, data, reply, 0); 21959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 21969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = reply.readString(); 21979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 21989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 21999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 22009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ComponentName getCallingActivity(IBinder token) 22029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 22039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 22049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 22059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 22069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 22079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CALLING_ACTIVITY_TRANSACTION, data, reply, 0); 22089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 22099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName res = ComponentName.readFromParcel(reply); 22109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 22119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 22129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 22139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List getTasks(int maxNum, int flags, 22159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IThumbnailReceiver receiver) throws RemoteException { 22169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 22179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 22189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 22199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(maxNum); 22209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 22219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(receiver != null ? receiver.asBinder() : null); 22229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_TASKS_TRANSACTION, data, reply, 0); 22239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 22249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList list = null; 22259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = reply.readInt(); 22269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (N >= 0) { 22279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list = new ArrayList(); 22289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project while (N > 0) { 22299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningTaskInfo info = 22309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningTaskInfo.CREATOR 22319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .createFromParcel(reply); 22329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list.add(info); 22339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project N--; 22349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 22379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 22389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 22399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, 22418264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int flags, int userId) throws RemoteException { 22429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 22439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 22449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 22459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(maxNum); 22469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 22478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(userId); 22489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_RECENT_TASKS_TRANSACTION, data, reply, 0); 22499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 22509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ActivityManager.RecentTaskInfo> list 22519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = reply.createTypedArrayList(ActivityManager.RecentTaskInfo.CREATOR); 22529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 22539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 22549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 22559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2256f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn public ActivityManager.TaskThumbnails getTaskThumbnails(int id) throws RemoteException { 2257d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn Parcel data = Parcel.obtain(); 2258d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn Parcel reply = Parcel.obtain(); 2259d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2260d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.writeInt(id); 2261f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn mRemote.transact(GET_TASK_THUMBNAILS_TRANSACTION, data, reply, 0); 2262d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.readException(); 2263f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn ActivityManager.TaskThumbnails bm = null; 2264d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn if (reply.readInt() != 0) { 2265f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn bm = ActivityManager.TaskThumbnails.CREATOR.createFromParcel(reply); 2266d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn } 2267d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.recycle(); 2268d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.recycle(); 2269d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn return bm; 2270d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn } 22719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List getServices(int maxNum, int flags) throws RemoteException { 22729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 22739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 22749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 22759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(maxNum); 22769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 22779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_SERVICES_TRANSACTION, data, reply, 0); 22789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 22799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList list = null; 22809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = reply.readInt(); 22819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (N >= 0) { 22829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list = new ArrayList(); 22839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project while (N > 0) { 22849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningServiceInfo info = 22859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningServiceInfo.CREATOR 22869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .createFromParcel(reply); 22879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list.add(info); 22889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project N--; 22899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 22929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 22939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 22949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 22959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState() 22969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 22979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 22989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 22999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PROCESSES_IN_ERROR_STATE_TRANSACTION, data, reply, 0); 23019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ActivityManager.ProcessErrorStateInfo> list 23039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = reply.createTypedArrayList(ActivityManager.ProcessErrorStateInfo.CREATOR); 23049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 23069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 23079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() 23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 23109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 23119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 23129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_RUNNING_APP_PROCESSES_TRANSACTION, data, reply, 0); 23149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ActivityManager.RunningAppProcessInfo> list 23169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = reply.createTypedArrayList(ActivityManager.RunningAppProcessInfo.CREATOR); 23179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 23209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2321f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu public List<ApplicationInfo> getRunningExternalApplications() 2322f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu throws RemoteException { 2323f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu Parcel data = Parcel.obtain(); 2324f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu Parcel reply = Parcel.obtain(); 2325f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu data.writeInterfaceToken(IActivityManager.descriptor); 2326f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu mRemote.transact(GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION, data, reply, 0); 2327f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu reply.readException(); 2328f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu ArrayList<ApplicationInfo> list 2329f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu = reply.createTypedArrayList(ApplicationInfo.CREATOR); 2330f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu data.recycle(); 2331f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu reply.recycle(); 2332f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu return list; 2333f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu } 23348078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn public void moveTaskToFront(int task, int flags, Bundle options) throws RemoteException 23359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 23369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 23379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 23389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(task); 2340621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeInt(flags); 23418078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn if (options != null) { 23428078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn data.writeInt(1); 23438078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn options.writeToParcel(data, 0); 23448078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn } else { 23458078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn data.writeInt(0); 23468078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn } 23479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_TASK_TO_FRONT_TRANSACTION, data, reply, 0); 23489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void moveTaskToBack(int task) throws RemoteException 23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 23549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 23559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 23569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(task); 23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_TASK_TO_BACK_TRANSACTION, data, reply, 0); 23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 23629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) 23649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 23659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 23669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 23679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 23699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(nonRoot ? 1 : 0); 23709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION, data, reply, 0); 23719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 23739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 23759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 23769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void moveTaskBackwards(int task) throws RemoteException 23789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 23799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 23809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 23819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(task); 23839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_TASK_BACKWARDS_TRANSACTION, data, reply, 0); 23849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 23879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException 23899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 23929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 23939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 23949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(onlyRoot ? 1 : 0); 23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_TASK_FOR_ACTIVITY_TRANSACTION, data, reply, 0); 23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 23979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 23989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 23999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void reportThumbnail(IBinder token, 24039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bitmap thumbnail, CharSequence description) throws RemoteException 24049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 24059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 24069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (thumbnail != null) { 24109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(1); 24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project thumbnail.writeToParcel(data, 0); 24129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 24139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(0); 24149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TextUtils.writeToParcel(description, data, 0); 24169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REPORT_THUMBNAIL_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 24179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 24189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 24199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 24209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentProviderHolder getContentProvider(IApplicationThread caller, 24226ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn String name, boolean stable) throws RemoteException { 24239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 24249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 24259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 24269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 24279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(name); 24286ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(stable ? 1 : 0); 24299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 24309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 24319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 24329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentProviderHolder cph = null; 24339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (res != 0) { 24349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project cph = ContentProviderHolder.CREATOR.createFromParcel(reply); 24359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 24379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 24389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return cph; 24399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 244025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov public ContentProviderHolder getContentProviderExternal(String name, IBinder token) 244125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov throws RemoteException 244225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov { 244325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel data = Parcel.obtain(); 244425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel reply = Parcel.obtain(); 244525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeInterfaceToken(IActivityManager.descriptor); 244625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeString(name); 244725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeStrongBinder(token); 244825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov mRemote.transact(GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0); 244925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.readException(); 245025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov int res = reply.readInt(); 245125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov ContentProviderHolder cph = null; 245225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov if (res != 0) { 245325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov cph = ContentProviderHolder.CREATOR.createFromParcel(reply); 245425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 245525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.recycle(); 245625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.recycle(); 245725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov return cph; 245825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 24599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void publishContentProviders(IApplicationThread caller, 24606ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn List<ContentProviderHolder> providers) throws RemoteException 24619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 24629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 24639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 24649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 24659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 24669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeTypedList(providers); 24679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(PUBLISH_CONTENT_PROVIDERS_TRANSACTION, data, reply, 0); 24689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 24699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 24709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 24719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24726ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn public boolean refContentProvider(IBinder connection, int stable, int unstable) 24736ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn throws RemoteException { 24749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 24759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 24769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 24776ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeStrongBinder(connection); 24786ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(stable); 24796ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(unstable); 24806ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn mRemote.transact(REF_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 24816ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.readException(); 24826ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean res = reply.readInt() != 0; 24836ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.recycle(); 24846ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.recycle(); 24856ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn return res; 24866ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 24876ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn public void unstableProviderDied(IBinder connection) throws RemoteException { 24886ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel data = Parcel.obtain(); 24896ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel reply = Parcel.obtain(); 24906ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 24916ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeStrongBinder(connection); 24926ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn mRemote.transact(UNSTABLE_PROVIDER_DIED_TRANSACTION, data, reply, 0); 24936ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.readException(); 24946ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.recycle(); 24956ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.recycle(); 24966ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 24976ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn 24986ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn public void removeContentProvider(IBinder connection, boolean stable) throws RemoteException { 24996ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel data = Parcel.obtain(); 25006ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel reply = Parcel.obtain(); 25016ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 25026ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeStrongBinder(connection); 25036ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(stable ? 1 : 0); 25049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REMOVE_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 25059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 25069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 25079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 25089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 250925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 251025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov public void removeContentProviderExternal(String name, IBinder token) throws RemoteException { 251125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel data = Parcel.obtain(); 251225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel reply = Parcel.obtain(); 251325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeInterfaceToken(IActivityManager.descriptor); 251425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeString(name); 251525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeStrongBinder(token); 251625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov mRemote.transact(REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0); 251725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.readException(); 251825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.recycle(); 251925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.recycle(); 252025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 252125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 2522dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn public PendingIntent getRunningServiceControlPanel(ComponentName service) 2523dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn throws RemoteException 2524dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn { 2525dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn Parcel data = Parcel.obtain(); 2526dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn Parcel reply = Parcel.obtain(); 2527dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2528dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn service.writeToParcel(data, 0); 2529dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn mRemote.transact(GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION, data, reply, 0); 2530dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn reply.readException(); 2531dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn PendingIntent res = PendingIntent.readPendingIntentOrNullFromParcel(reply); 2532dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn data.recycle(); 2533dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn reply.recycle(); 2534dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn return res; 2535dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn } 2536dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn 25379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ComponentName startService(IApplicationThread caller, Intent service, 25387767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn String resolvedType, int userId) throws RemoteException 25399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 25409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 25419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 25429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 25439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 25449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 25459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 25467767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn data.writeInt(userId); 25479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_SERVICE_TRANSACTION, data, reply, 0); 25489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 25499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName res = ComponentName.readFromParcel(reply); 25509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 25519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 25529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 25539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 25549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int stopService(IApplicationThread caller, Intent service, 25557767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn String resolvedType, int userId) throws RemoteException 25569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 25579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 25589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 25599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 25609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 25619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 25629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 25637767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn data.writeInt(userId); 25649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(STOP_SERVICE_TRANSACTION, data, reply, 0); 25659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 25669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 25679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 25689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 25699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 25709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 25719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean stopServiceToken(ComponentName className, IBinder token, 25729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int startId) throws RemoteException { 25739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 25749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 25759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 25769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(className, data); 25779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 25789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(startId); 25799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(STOP_SERVICE_TOKEN_TRANSACTION, data, reply, 0); 25809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 25819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 25829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 25839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 25849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 25859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 25869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setServiceForeground(ComponentName className, IBinder token, 2587d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn int id, Notification notification, boolean removeNotification) throws RemoteException { 25889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 25899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 25909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 25919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(className, data); 25929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 2593d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(id); 2594d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn if (notification != null) { 2595d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(1); 2596d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn notification.writeToParcel(data, 0); 2597d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn } else { 2598d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(0); 2599d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn } 2600d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(removeNotification ? 1 : 0); 26019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_SERVICE_FOREGROUND_TRANSACTION, data, reply, 0); 26029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int bindService(IApplicationThread caller, IBinder token, 26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service, String resolvedType, IServiceConnection connection, 260837ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani int flags, int userId) throws RemoteException { 26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 26139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 26159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 26169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(connection.asBinder()); 26179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 261837ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani data.writeInt(userId); 26199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(BIND_SERVICE_TRANSACTION, data, reply, 0); 26209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 26229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 26259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean unbindService(IServiceConnection connection) throws RemoteException 26279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 26289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(connection.asBinder()); 26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNBIND_SERVICE_TRANSACTION, data, reply, 0); 26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 26359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 26389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void publishService(IBinder token, 26419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent, IBinder service) throws RemoteException { 26429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 26479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(service); 26489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(PUBLISH_SERVICE_TRANSACTION, data, reply, 0); 26499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unbindFinished(IBinder token, Intent intent, boolean doRebind) 26559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 26609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 26619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(doRebind ? 1 : 0); 26629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNBIND_FINISHED_TRANSACTION, data, reply, 0); 26639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2668f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn public void serviceDoneExecuting(IBinder token, int type, int startId, 2669f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int res) throws RemoteException { 26709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 2674f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn data.writeInt(type); 2675f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn data.writeInt(startId); 2676f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn data.writeInt(res); 26779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SERVICE_DONE_EXECUTING_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 26789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 26839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBinder peekService(Intent service, String resolvedType) throws RemoteException { 26849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 26889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 26899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(PEEK_SERVICE_TRANSACTION, data, reply, 0); 26909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder binder = reply.readStrongBinder(); 26929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return binder; 26959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2697181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate public boolean bindBackupAgent(ApplicationInfo app, int backupRestoreMode) 2698181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate throws RemoteException { 2699181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel data = Parcel.obtain(); 2700181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel reply = Parcel.obtain(); 2701181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 2702181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate app.writeToParcel(data, 0); 2703181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInt(backupRestoreMode); 2704181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate mRemote.transact(START_BACKUP_AGENT_TRANSACTION, data, reply, 0); 2705181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.readException(); 2706181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate boolean success = reply.readInt() != 0; 2707181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.recycle(); 2708181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.recycle(); 2709181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return success; 2710181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 2711181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 2712181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException { 2713181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel data = Parcel.obtain(); 2714181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel reply = Parcel.obtain(); 2715181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 2716181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeString(packageName); 2717181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeStrongBinder(agent); 2718181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate mRemote.transact(BACKUP_AGENT_CREATED_TRANSACTION, data, reply, 0); 2719181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.recycle(); 2720181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.recycle(); 2721181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 2722181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 2723181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate public void unbindBackupAgent(ApplicationInfo app) throws RemoteException { 2724181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel data = Parcel.obtain(); 2725181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel reply = Parcel.obtain(); 2726181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 2727181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate app.writeToParcel(data, 0); 2728181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate mRemote.transact(UNBIND_BACKUP_AGENT_TRANSACTION, data, reply, 0); 2729181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.readException(); 2730181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.recycle(); 2731181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.recycle(); 2732181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 2733181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 27349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean startInstrumentation(ComponentName className, String profileFile, 27355e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int flags, Bundle arguments, IInstrumentationWatcher watcher, int userId) 27369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 27379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(className, data); 27419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(profileFile); 27429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 27439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(arguments); 27449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(watcher != null ? watcher.asBinder() : null); 27455e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userId); 27469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0); 27479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 27499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 27509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 27519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 27529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 27539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 27549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void finishInstrumentation(IApplicationThread target, 27559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode, Bundle results) throws RemoteException { 27569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(target != null ? target.asBinder() : null); 27609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 27619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(results); 27629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_INSTRUMENTATION_TRANSACTION, data, reply, 0); 27639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 27659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 27669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 27679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Configuration getConfiguration() throws RemoteException 27689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CONFIGURATION_TRANSACTION, data, reply, 0); 27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Configuration res = Configuration.CREATOR.createFromParcel(reply); 27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 27769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void updateConfiguration(Configuration values) throws RemoteException 27809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 27819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.writeToParcel(data, 0); 27859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UPDATE_CONFIGURATION_TRANSACTION, data, reply, 0); 27869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 27909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setRequestedOrientation(IBinder token, int requestedOrientation) 27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestedOrientation); 27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0); 27989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getRequestedOrientation(IBinder token) throws RemoteException { 28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 28079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0); 28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ComponentName getActivityClassForToken(IBinder token) 28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 28209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION, data, reply, 0); 28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName res = ComponentName.readFromParcel(reply); 28239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getPackageForToken(IBinder token) throws RemoteException 28289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 28299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 28339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PACKAGE_FOR_TOKEN_TRANSACTION, data, reply, 0); 28349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = reply.readString(); 28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 28399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IIntentSender getIntentSender(int type, 28419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName, IBinder token, String resultWho, 28427a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn int requestCode, Intent[] intents, String[] resolvedTypes, int flags, 28434120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Bundle options, int userId) throws RemoteException { 28449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(type); 28489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 28499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 28509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultWho); 28519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestCode); 2852621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn if (intents != null) { 28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(1); 2854621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeTypedArray(intents, 0); 2855621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStringArray(resolvedTypes); 28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(0); 28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 28607a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn if (options != null) { 28617a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn data.writeInt(1); 28627a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn options.writeToParcel(data, 0); 28637a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn } else { 28647a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn data.writeInt(0); 28657a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn } 28664120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(userId); 28679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0); 28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender res = IIntentSender.Stub.asInterface( 28709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readStrongBinder()); 28719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void cancelIntentSender(IIntentSender sender) throws RemoteException { 28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(sender.asBinder()); 28809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CANCEL_INTENT_SENDER_TRANSACTION, data, reply, 0); 28819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getPackageForIntentSender(IIntentSender sender) throws RemoteException { 28869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(sender.asBinder()); 28909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 28919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = reply.readString(); 28939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 28969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2897c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate public int getUidForIntentSender(IIntentSender sender) throws RemoteException { 2898c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate Parcel data = Parcel.obtain(); 2899c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate Parcel reply = Parcel.obtain(); 2900c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 2901c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.writeStrongBinder(sender.asBinder()); 2902c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate mRemote.transact(GET_UID_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 2903c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.readException(); 2904c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate int res = reply.readInt(); 2905c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.recycle(); 2906c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.recycle(); 2907c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate return res; 2908c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate } 29094120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, 29104120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn boolean requireFull, String name, String callerPackage) throws RemoteException { 29114120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Parcel data = Parcel.obtain(); 29124120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Parcel reply = Parcel.obtain(); 29134120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 29144120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(callingPid); 29154120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(callingUid); 29164120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(userId); 29174120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(allowAll ? 1 : 0); 29184120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(requireFull ? 1 : 0); 29194120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeString(name); 29204120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeString(callerPackage); 29214120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0); 29224120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.readException(); 29234120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int res = reply.readInt(); 29244120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.recycle(); 29254120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.recycle(); 29264120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn return res; 29274120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn } 29289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setProcessLimit(int max) throws RemoteException 29299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 29309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(max); 29349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_PROCESS_LIMIT_TRANSACTION, data, reply, 0); 29359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getProcessLimit() throws RemoteException 29409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 29419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PROCESS_LIMIT_TRANSACTION, data, reply, 0); 29459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 29479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 29509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setProcessForeground(IBinder token, int pid, 29529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isForeground) throws RemoteException { 29539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 29579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(pid); 29589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(isForeground ? 1 : 0); 29599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_PROCESS_FOREGROUND_TRANSACTION, data, reply, 0); 29609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int checkPermission(String permission, int pid, int uid) 29659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 29669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(permission); 29709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(pid); 29719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(uid); 29729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CHECK_PERMISSION_TRANSACTION, data, reply, 0); 29739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 29759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 29789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean clearApplicationUserData(final String packageName, 2980742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani final IPackageDataObserver observer, final int userId) throws RemoteException { 29819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 29859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(observer.asBinder()); 2986742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani data.writeInt(userId); 29879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CLEAR_APP_DATA_TRANSACTION, data, reply, 0); 29889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 29909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 29939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int checkUriPermission(Uri uri, int pid, int uid, int mode) 29959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 29969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uri.writeToParcel(data, 0); 30009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(pid); 30019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(uid); 30029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(mode); 30039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CHECK_URI_PERMISSION_TRANSACTION, data, reply, 0); 30049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 30069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 30099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void grantUriPermission(IApplicationThread caller, String targetPkg, 30119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri, int mode) throws RemoteException { 30129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller.asBinder()); 30169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(targetPkg); 30179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uri.writeToParcel(data, 0); 30189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(mode); 30199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 30209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void revokeUriPermission(IApplicationThread caller, Uri uri, 30259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode) throws RemoteException { 30269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller.asBinder()); 30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uri.writeToParcel(data, 0); 30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(mode); 30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0); 30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void showWaitingForDebugger(IApplicationThread who, boolean waiting) 30389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 30399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(who.asBinder()); 30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(waiting ? 1 : 0); 30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SHOW_WAITING_FOR_DEBUGGER_TRANSACTION, data, reply, 0); 30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException { 30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0); 30549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project outInfo.readFromParcel(reply); 30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unhandledBack() throws RemoteException 30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNHANDLED_BACK_TRANSACTION, data, reply, 0); 30659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException 30709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 30719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(OPEN_CONTENT_URI_TRANSACTION, data, reply, 0); 30759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ParcelFileDescriptor pfd = null; 30779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (reply.readInt() != 0) { 30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project pfd = ParcelFileDescriptor.CREATOR.createFromParcel(reply); 30799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return pfd; 30839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void goingToSleep() throws RemoteException 30859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 30869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GOING_TO_SLEEP_TRANSACTION, data, reply, 0); 30909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void wakingUp() throws RemoteException 30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(WAKING_UP_TRANSACTION, data, reply, 0); 31009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3104ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn public void setLockScreenShown(boolean shown) throws RemoteException 3105ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn { 3106ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn Parcel data = Parcel.obtain(); 3107ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn Parcel reply = Parcel.obtain(); 3108ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3109ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.writeInt(shown ? 1 : 0); 3110ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn mRemote.transact(SET_LOCK_SCREEN_SHOWN_TRANSACTION, data, reply, 0); 3111ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn reply.readException(); 3112ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.recycle(); 3113ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn reply.recycle(); 3114ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn } 31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setDebugApp( 31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName, boolean waitForDebugger, boolean persistent) 31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException 31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 31239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(waitForDebugger ? 1 : 0); 31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(persistent ? 1 : 0); 31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_DEBUG_APP_TRANSACTION, data, reply, 0); 31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setAlwaysFinish(boolean enabled) throws RemoteException 31319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 31329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(enabled ? 1 : 0); 31369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_ALWAYS_FINISH_TRANSACTION, data, reply, 0); 31379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3141b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn public void setActivityController(IActivityController watcher) throws RemoteException 31429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 31439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(watcher != null ? watcher.asBinder() : null); 3147b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn mRemote.transact(SET_ACTIVITY_CONTROLLER_TRANSACTION, data, reply, 0); 31489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void enterSafeMode() throws RemoteException { 31539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ENTER_SAFE_MODE_TRANSACTION, data, null, 0); 31569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void noteWakeupAlarm(IIntentSender sender) throws RemoteException { 31599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(sender.asBinder()); 31619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0); 31639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3165648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException { 31669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeIntArray(pids); 3170e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu data.writeString(reason); 3171648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn data.writeInt(secure ? 1 : 0); 3172e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0); 31739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 31749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 3177b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey } 3178b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey @Override 3179b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey public boolean killProcessesBelowForeground(String reason) throws RemoteException { 3180b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey Parcel data = Parcel.obtain(); 3181b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey Parcel reply = Parcel.obtain(); 3182b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 3183b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.writeString(reason); 3184b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey mRemote.transact(KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION, data, reply, 0); 3185b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey boolean res = reply.readInt() != 0; 3186b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.recycle(); 3187b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey reply.recycle(); 3188b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey return res; 31899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void startRunning(String pkg, String cls, String action, 31919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String indata) throws RemoteException { 31929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(pkg); 31969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(cls); 31979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(action); 31989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(indata); 31999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_RUNNING_TRANSACTION, data, reply, 0); 32009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 32019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 32029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 32039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 32049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean testIsSystemReady() 32059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 32069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* this base class version is never called */ 32079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 32089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 320960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor public void handleApplicationCrash(IBinder app, 321060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException 321160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor { 321260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor Parcel data = Parcel.obtain(); 321360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor Parcel reply = Parcel.obtain(); 321460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.writeInterfaceToken(IActivityManager.descriptor); 321560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.writeStrongBinder(app); 321660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor crashInfo.writeToParcel(data, 0); 321760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor mRemote.transact(HANDLE_APPLICATION_CRASH_TRANSACTION, data, reply, 0); 321860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.readException(); 321960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.recycle(); 322060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.recycle(); 322160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor } 3222438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick 322360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor public boolean handleApplicationWtf(IBinder app, String tag, 3224b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException 32259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 32269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 32279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 32289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 32299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(app); 32309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(tag); 3231b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor crashInfo.writeToParcel(data, 0); 323260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor mRemote.transact(HANDLE_APPLICATION_WTF_TRANSACTION, data, reply, 0); 32339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 323460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor boolean res = reply.readInt() != 0; 32359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 32369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 323760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor return res; 32389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor 3240438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick public void handleApplicationStrictModeViolation(IBinder app, 324146d42387464a651268648659e91d022566d4844cBrad Fitzpatrick int violationMask, 3242cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick StrictMode.ViolationInfo info) throws RemoteException 3243438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick { 3244438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick Parcel data = Parcel.obtain(); 3245438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick Parcel reply = Parcel.obtain(); 3246438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.writeInterfaceToken(IActivityManager.descriptor); 3247438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.writeStrongBinder(app); 324846d42387464a651268648659e91d022566d4844cBrad Fitzpatrick data.writeInt(violationMask); 3249cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick info.writeToParcel(data, 0); 3250438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick mRemote.transact(HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION, data, reply, 0); 3251438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick reply.readException(); 3252438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick reply.recycle(); 3253438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.recycle(); 3254438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick } 3255438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick 32569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void signalPersistentProcesses(int sig) throws RemoteException { 32579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 32589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 32599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 32609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(sig); 32619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SIGNAL_PERSISTENT_PROCESSES_TRANSACTION, data, reply, 0); 32629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 32639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 32649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 32659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3266e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 326703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn public void killBackgroundProcesses(String packageName) throws RemoteException { 326803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn Parcel data = Parcel.obtain(); 326903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn Parcel reply = Parcel.obtain(); 327003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 327103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.writeString(packageName); 327203abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn mRemote.transact(KILL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0); 327303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn reply.readException(); 327403abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.recycle(); 327503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn reply.recycle(); 327603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn } 3277e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 3278e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn public void killAllBackgroundProcesses() throws RemoteException { 3279e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn Parcel data = Parcel.obtain(); 3280e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn Parcel reply = Parcel.obtain(); 3281e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3282e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn mRemote.transact(KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0); 3283e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn reply.readException(); 3284e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn data.recycle(); 3285e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn reply.recycle(); 3286e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn } 3287e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 328803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn public void forceStopPackage(String packageName) throws RemoteException { 32899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 329303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn mRemote.transact(FORCE_STOP_PACKAGE_TRANSACTION, data, reply, 0); 32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 32959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 32969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 32989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 329927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo) 330027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn throws RemoteException 330127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn { 330227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn Parcel data = Parcel.obtain(); 330327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn Parcel reply = Parcel.obtain(); 330427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 330527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn mRemote.transact(GET_MY_MEMORY_STATE_TRANSACTION, data, reply, 0); 330627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn reply.readException(); 330727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn outInfo.readFromParcel(reply); 330827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn reply.recycle(); 330927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn data.recycle(); 331027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn } 331127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn 33129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException 33139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 33149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 33159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 33169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 33179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_DEVICE_CONFIGURATION_TRANSACTION, data, reply, 0); 33189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 33199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ConfigurationInfo res = ConfigurationInfo.CREATOR.createFromParcel(reply); 33209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 33219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 33229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 33239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3324f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project 3325f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project public boolean profileControl(String process, boolean start, 33267eabe55db6b113f83c2cefcd06812648927de877Romain Guy String path, ParcelFileDescriptor fd, int profileType) throws RemoteException 3327f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project { 3328f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project Parcel data = Parcel.obtain(); 3329f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project Parcel reply = Parcel.obtain(); 3330f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 3331f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeString(process); 3332f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeInt(start ? 1 : 0); 33339a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy data.writeInt(profileType); 3334f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeString(path); 33359c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn if (fd != null) { 33369c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn data.writeInt(1); 33379c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 33389c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn } else { 33399c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn data.writeInt(0); 33409c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn } 3341f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project mRemote.transact(PROFILE_CONTROL_TRANSACTION, data, reply, 0); 3342f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.readException(); 3343f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project boolean res = reply.readInt() != 0; 3344f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.recycle(); 3345f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.recycle(); 3346f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project return res; 3347f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project } 3348f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project 334955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn public boolean shutdown(int timeout) throws RemoteException 335055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn { 335155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn Parcel data = Parcel.obtain(); 335255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn Parcel reply = Parcel.obtain(); 335355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 335455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.writeInt(timeout); 335555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0); 335655280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.readException(); 335755280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn boolean res = reply.readInt() != 0; 335855280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.recycle(); 335955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.recycle(); 336055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn return res; 336155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn } 336255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn 336395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn public void stopAppSwitches() throws RemoteException { 336495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel data = Parcel.obtain(); 336595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel reply = Parcel.obtain(); 336695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 336795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn mRemote.transact(STOP_APP_SWITCHES_TRANSACTION, data, reply, 0); 336895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.readException(); 336995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.recycle(); 337095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.recycle(); 337195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 337295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 337395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn public void resumeAppSwitches() throws RemoteException { 337495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel data = Parcel.obtain(); 337595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel reply = Parcel.obtain(); 337695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 337795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn mRemote.transact(RESUME_APP_SWITCHES_TRANSACTION, data, reply, 0); 337895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.readException(); 337995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.recycle(); 338095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.recycle(); 338195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 338295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 33835e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn public void killApplicationWithAppId(String pkg, int appid) throws RemoteException { 3384261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu Parcel data = Parcel.obtain(); 3385261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu Parcel reply = Parcel.obtain(); 3386261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.writeInterfaceToken(IActivityManager.descriptor); 3387261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.writeString(pkg); 33885e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(appid); 33895e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn mRemote.transact(KILL_APPLICATION_WITH_APPID_TRANSACTION, data, reply, 0); 3390261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu reply.readException(); 3391261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.recycle(); 3392261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu reply.recycle(); 3393261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu } 3394a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn 3395a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn public void closeSystemDialogs(String reason) throws RemoteException { 3396a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn Parcel data = Parcel.obtain(); 3397a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn Parcel reply = Parcel.obtain(); 3398a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3399a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.writeString(reason); 3400a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn mRemote.transact(CLOSE_SYSTEM_DIALOGS_TRANSACTION, data, reply, 0); 3401a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn reply.readException(); 3402a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.recycle(); 3403a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn reply.recycle(); 3404a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn } 34053025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn 34064f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids) 34073025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn throws RemoteException { 34083025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn Parcel data = Parcel.obtain(); 34093025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn Parcel reply = Parcel.obtain(); 34103025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 34114f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn data.writeIntArray(pids); 34123025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn mRemote.transact(GET_PROCESS_MEMORY_INFO_TRANSACTION, data, reply, 0); 34133025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn reply.readException(); 34144f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn Debug.MemoryInfo[] res = reply.createTypedArray(Debug.MemoryInfo.CREATOR); 34153025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn data.recycle(); 34163025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn reply.recycle(); 34174f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn return res; 34183025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn } 34195e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate 34205e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate public void killApplicationProcess(String processName, int uid) throws RemoteException { 34215e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate Parcel data = Parcel.obtain(); 34225e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate Parcel reply = Parcel.obtain(); 34235e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 34245e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.writeString(processName); 34255e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.writeInt(uid); 34265e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate mRemote.transact(KILL_APPLICATION_PROCESS_TRANSACTION, data, reply, 0); 34275e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate reply.readException(); 34285e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.recycle(); 34295e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate reply.recycle(); 34305e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate } 34315e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate 34323b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn public void overridePendingTransition(IBinder token, String packageName, 34333b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn int enterAnim, int exitAnim) throws RemoteException { 34343b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn Parcel data = Parcel.obtain(); 34353b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn Parcel reply = Parcel.obtain(); 34363b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 34373b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeStrongBinder(token); 34383b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeString(packageName); 34393b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeInt(enterAnim); 34403b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeInt(exitAnim); 34413b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn mRemote.transact(OVERRIDE_PENDING_TRANSITION_TRANSACTION, data, reply, 0); 34423b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn reply.readException(); 34433b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.recycle(); 34443b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn reply.recycle(); 34453b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn } 34463b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn 34479327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn public boolean isUserAMonkey() throws RemoteException { 34489327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn Parcel data = Parcel.obtain(); 34499327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn Parcel reply = Parcel.obtain(); 34509327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 34519327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn mRemote.transact(IS_USER_A_MONKEY_TRANSACTION, data, reply, 0); 34529327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.readException(); 34539327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn boolean res = reply.readInt() != 0; 34549327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn data.recycle(); 34559327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.recycle(); 34569327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn return res; 34579327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } 34589327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn 3459860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn public void finishHeavyWeightApp() throws RemoteException { 3460860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn Parcel data = Parcel.obtain(); 3461860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn Parcel reply = Parcel.obtain(); 3462860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3463860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn mRemote.transact(FINISH_HEAVY_WEIGHT_APP_TRANSACTION, data, reply, 0); 3464860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn reply.readException(); 3465860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn data.recycle(); 3466860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn reply.recycle(); 3467860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn } 3468860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn 346969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler public void setImmersive(IBinder token, boolean immersive) 347069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler throws RemoteException { 347169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel data = Parcel.obtain(); 347269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel reply = Parcel.obtain(); 347369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInterfaceToken(IActivityManager.descriptor); 347469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeStrongBinder(token); 347569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInt(immersive ? 1 : 0); 347669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler mRemote.transact(SET_IMMERSIVE_TRANSACTION, data, reply, 0); 347769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.readException(); 347869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.recycle(); 347969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.recycle(); 348069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 348169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 348269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler public boolean isImmersive(IBinder token) 348369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler throws RemoteException { 348469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel data = Parcel.obtain(); 348569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel reply = Parcel.obtain(); 348669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInterfaceToken(IActivityManager.descriptor); 348769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeStrongBinder(token); 348869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler mRemote.transact(IS_IMMERSIVE_TRANSACTION, data, reply, 0); 348969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.readException(); 34907e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean res = reply.readInt() == 1; 349169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.recycle(); 349269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.recycle(); 349369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return res; 349469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 349569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 349669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler public boolean isTopActivityImmersive() 349769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler throws RemoteException { 349869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel data = Parcel.obtain(); 349969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel reply = Parcel.obtain(); 350069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInterfaceToken(IActivityManager.descriptor); 350169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler mRemote.transact(IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION, data, reply, 0); 350269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.readException(); 35037e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean res = reply.readInt() == 1; 350469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.recycle(); 350569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.recycle(); 350669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return res; 350769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 350869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 35099d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn public void crashApplication(int uid, int initialPid, String packageName, 35109d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn String message) throws RemoteException { 35119d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn Parcel data = Parcel.obtain(); 35129d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn Parcel reply = Parcel.obtain(); 35139d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 35149d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeInt(uid); 35159d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeInt(initialPid); 35169d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeString(packageName); 35179d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeString(message); 35189d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn mRemote.transact(CRASH_APPLICATION_TRANSACTION, data, reply, 0); 35199d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn reply.readException(); 35209d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.recycle(); 35219d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn reply.recycle(); 35229d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn } 3523824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden 35245e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn public String getProviderMimeType(Uri uri, int userId) throws RemoteException { 3525cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn Parcel data = Parcel.obtain(); 3526cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn Parcel reply = Parcel.obtain(); 3527cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3528cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn uri.writeToParcel(data, 0); 35295e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userId); 3530cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn mRemote.transact(GET_PROVIDER_MIME_TYPE_TRANSACTION, data, reply, 0); 3531cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.readException(); 3532cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn String res = reply.readString(); 3533cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn data.recycle(); 3534cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.recycle(); 3535cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn return res; 3536cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn } 3537cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn 35387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn public IBinder newUriPermissionOwner(String name) 35397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn throws RemoteException { 35407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel data = Parcel.obtain(); 35417e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel reply = Parcel.obtain(); 35427e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 35437e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeString(name); 35447e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn mRemote.transact(NEW_URI_PERMISSION_OWNER_TRANSACTION, data, reply, 0); 35457e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.readException(); 35467e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder res = reply.readStrongBinder(); 35477e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.recycle(); 35487e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.recycle(); 35497e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return res; 35507e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 35517e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 35527e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg, 35537e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Uri uri, int mode) throws RemoteException { 35547e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel data = Parcel.obtain(); 35557e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel reply = Parcel.obtain(); 35567e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 35577e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeStrongBinder(owner); 35587e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(fromUid); 35597e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeString(targetPkg); 35607e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn uri.writeToParcel(data, 0); 35617e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(mode); 35627e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 35637e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.readException(); 35647e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.recycle(); 35657e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.recycle(); 35667e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 35677e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 35687e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn public void revokeUriPermissionFromOwner(IBinder owner, Uri uri, 35697e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int mode) throws RemoteException { 35707e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel data = Parcel.obtain(); 35717e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel reply = Parcel.obtain(); 35727e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 35737e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeStrongBinder(owner); 35747e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn if (uri != null) { 35757e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(1); 35767e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn uri.writeToParcel(data, 0); 35777e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } else { 35787e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(0); 35797e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 35807e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(mode); 35817e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0); 35827e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.readException(); 35837e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.recycle(); 35847e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.recycle(); 35857e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 3586c8f8497b9cac63a923dbdb1c08e247ba32c19e5eDianne Hackborn 358790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn public int checkGrantUriPermission(int callingUid, String targetPkg, 358890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Uri uri, int modeFlags) throws RemoteException { 358990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Parcel data = Parcel.obtain(); 359090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Parcel reply = Parcel.obtain(); 359190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 359290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeInt(callingUid); 359390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeString(targetPkg); 359490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn uri.writeToParcel(data, 0); 359590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeInt(modeFlags); 359690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn mRemote.transact(CHECK_GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 359790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.readException(); 359890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int res = reply.readInt(); 359990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.recycle(); 360090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.recycle(); 360190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn return res; 360290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn } 360390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn 3604824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden public boolean dumpHeap(String process, boolean managed, 3605824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden String path, ParcelFileDescriptor fd) throws RemoteException { 3606824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden Parcel data = Parcel.obtain(); 3607824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden Parcel reply = Parcel.obtain(); 3608824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInterfaceToken(IActivityManager.descriptor); 3609824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeString(process); 3610824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInt(managed ? 1 : 0); 3611824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeString(path); 3612824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden if (fd != null) { 3613824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInt(1); 3614824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 3615824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } else { 3616824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInt(0); 3617824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } 3618824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden mRemote.transact(DUMP_HEAP_TRANSACTION, data, reply, 0); 3619824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.readException(); 3620824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden boolean res = reply.readInt() != 0; 3621824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.recycle(); 3622824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.recycle(); 3623824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden return res; 3624824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } 36259d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn 3626621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn public int startActivities(IApplicationThread caller, 3627a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Intent[] intents, String[] resolvedTypes, IBinder resultTo, 3628a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options) throws RemoteException { 3629621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Parcel data = Parcel.obtain(); 3630621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Parcel reply = Parcel.obtain(); 3631621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3632621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 3633621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeTypedArray(intents, 0); 3634621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStringArray(resolvedTypes); 3635621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStrongBinder(resultTo); 3636a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 3637a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 3638a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 3639a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 3640a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 3641a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 3642621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn mRemote.transact(START_ACTIVITIES_TRANSACTION, data, reply, 0); 3643621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.readException(); 3644621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn int result = reply.readInt(); 3645621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.recycle(); 3646621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.recycle(); 3647621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn return result; 3648621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } 3649621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn 36500f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public int getFrontActivityScreenCompatMode() throws RemoteException { 36510f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel data = Parcel.obtain(); 36520f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel reply = Parcel.obtain(); 36530f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 36540f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 36550f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.readException(); 36560f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = reply.readInt(); 36570f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.recycle(); 36580f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.recycle(); 36590f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return mode; 36600f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 36610f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 36620f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public void setFrontActivityScreenCompatMode(int mode) throws RemoteException { 36630f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel data = Parcel.obtain(); 36640f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel reply = Parcel.obtain(); 36650f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 36660f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInt(mode); 36670f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 36680f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.readException(); 36690f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.recycle(); 36700f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.recycle(); 36710f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 36720f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 36730f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public int getPackageScreenCompatMode(String packageName) throws RemoteException { 36740f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel data = Parcel.obtain(); 36750f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel reply = Parcel.obtain(); 36760f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 367736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeString(packageName); 367836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn mRemote.transact(GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 36790f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.readException(); 36800f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = reply.readInt(); 36810f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.recycle(); 36820f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.recycle(); 36830f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return mode; 36840f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 36850f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 36860f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public void setPackageScreenCompatMode(String packageName, int mode) 3687e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn throws RemoteException { 3688e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn Parcel data = Parcel.obtain(); 3689e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn Parcel reply = Parcel.obtain(); 3690e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3691e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.writeString(packageName); 36920f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInt(mode); 3693e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 3694e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn reply.readException(); 3695e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn reply.recycle(); 3696e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.recycle(); 3697e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn } 3698e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn 369936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn public boolean getPackageAskScreenCompat(String packageName) throws RemoteException { 370036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel data = Parcel.obtain(); 370136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel reply = Parcel.obtain(); 370236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 370336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeString(packageName); 370436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn mRemote.transact(GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0); 370536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.readException(); 370636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn boolean ask = reply.readInt() != 0; 370736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.recycle(); 370836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.recycle(); 370936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn return ask; 371036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 371136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 371236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn public void setPackageAskScreenCompat(String packageName, boolean ask) 371336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn throws RemoteException { 371436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel data = Parcel.obtain(); 371536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel reply = Parcel.obtain(); 371636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 371736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeString(packageName); 371836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeInt(ask ? 1 : 0); 371936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn mRemote.transact(SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0); 372036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.readException(); 372136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.recycle(); 372236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.recycle(); 372336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 372436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 37254b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani public boolean switchUser(int userid) throws RemoteException { 37264b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani Parcel data = Parcel.obtain(); 37274b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani Parcel reply = Parcel.obtain(); 37284b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.writeInterfaceToken(IActivityManager.descriptor); 37294b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.writeInt(userid); 37304b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani mRemote.transact(SWITCH_USER_TRANSACTION, data, reply, 0); 37314b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.readException(); 37324b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani boolean result = reply.readInt() != 0; 37334b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.recycle(); 37344b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.recycle(); 37354b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani return result; 37364b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani } 373752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 373880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public int stopUser(int userid, IStopUserCallback callback) throws RemoteException { 373980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn Parcel data = Parcel.obtain(); 374080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn Parcel reply = Parcel.obtain(); 374180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 374280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.writeInt(userid); 374380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.writeStrongInterface(callback); 374480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn mRemote.transact(STOP_USER_TRANSACTION, data, reply, 0); 374580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.readException(); 374680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn int result = reply.readInt(); 374780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.recycle(); 374880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.recycle(); 374980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn return result; 375080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn } 375180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 375252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani public UserInfo getCurrentUser() throws RemoteException { 375352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani Parcel data = Parcel.obtain(); 375452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani Parcel reply = Parcel.obtain(); 375552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani data.writeInterfaceToken(IActivityManager.descriptor); 375680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn mRemote.transact(GET_CURRENT_USER_TRANSACTION, data, reply, 0); 375752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani reply.readException(); 375852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani UserInfo userInfo = UserInfo.CREATOR.createFromParcel(reply); 375952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani reply.recycle(); 376052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani data.recycle(); 376152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani return userInfo; 376252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani } 376352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 37645e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn public boolean isUserRunning(int userid) throws RemoteException { 37655e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn Parcel data = Parcel.obtain(); 37665e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn Parcel reply = Parcel.obtain(); 37675e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 37685e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userid); 37695e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn mRemote.transact(IS_USER_RUNNING_TRANSACTION, data, reply, 0); 37705e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.readException(); 37715e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn boolean result = reply.readInt() != 0; 37725e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.recycle(); 37735e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.recycle(); 37745e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn return result; 37755e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn } 37765e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn 37770c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn public boolean removeSubTask(int taskId, int subTaskIndex) throws RemoteException { 37780c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn Parcel data = Parcel.obtain(); 37790c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn Parcel reply = Parcel.obtain(); 37800c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 37810c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInt(taskId); 37820c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInt(subTaskIndex); 37830c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn mRemote.transact(REMOVE_SUB_TASK_TRANSACTION, data, reply, 0); 37840c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.readException(); 37850c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn boolean result = reply.readInt() != 0; 37860c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.recycle(); 37870c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.recycle(); 37880c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn return result; 37890c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn } 37900c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn 37910c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn public boolean removeTask(int taskId, int flags) throws RemoteException { 37920c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn Parcel data = Parcel.obtain(); 37930c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn Parcel reply = Parcel.obtain(); 37940c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 37950c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInt(taskId); 37960c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInt(flags); 37970c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn mRemote.transact(REMOVE_TASK_TRANSACTION, data, reply, 0); 37980c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.readException(); 37990c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn boolean result = reply.readInt() != 0; 38000c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.recycle(); 38010c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.recycle(); 38020c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn return result; 38030c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn } 38044b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani 3805a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey public void registerProcessObserver(IProcessObserver observer) throws RemoteException { 3806a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel data = Parcel.obtain(); 3807a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel reply = Parcel.obtain(); 3808a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 3809a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeStrongBinder(observer != null ? observer.asBinder() : null); 3810a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey mRemote.transact(REGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0); 3811a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.readException(); 3812a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.recycle(); 3813a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.recycle(); 3814a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 3815a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 3816a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey public void unregisterProcessObserver(IProcessObserver observer) throws RemoteException { 3817a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel data = Parcel.obtain(); 3818a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel reply = Parcel.obtain(); 3819a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 3820a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeStrongBinder(observer != null ? observer.asBinder() : null); 3821a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey mRemote.transact(UNREGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0); 3822a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.readException(); 3823a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.recycle(); 3824a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.recycle(); 3825a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 3826a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 38276c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn public boolean isIntentSenderTargetedToPackage(IIntentSender sender) throws RemoteException { 38286c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn Parcel data = Parcel.obtain(); 38296c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn Parcel reply = Parcel.obtain(); 38306c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 38316c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 38326c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn mRemote.transact(IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION, data, reply, 0); 38336c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.readException(); 38346c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn boolean res = reply.readInt() != 0; 38356c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.recycle(); 38366c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.recycle(); 38376c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn return res; 38386c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn } 38396c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn 38401927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException { 38411927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn Parcel data = Parcel.obtain(); 38421927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn Parcel reply = Parcel.obtain(); 38431927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 38441927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 38451927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn mRemote.transact(IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION, data, reply, 0); 38461927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.readException(); 38471927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn boolean res = reply.readInt() != 0; 38481927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.recycle(); 38491927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.recycle(); 38501927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn return res; 38511927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn } 38521927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn 385331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn public void updatePersistentConfiguration(Configuration values) throws RemoteException 385431ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn { 385531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn Parcel data = Parcel.obtain(); 385631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn Parcel reply = Parcel.obtain(); 385731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 385831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn values.writeToParcel(data, 0); 385931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn mRemote.transact(UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION, data, reply, 0); 386031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn reply.readException(); 386131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn data.recycle(); 386231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn reply.recycle(); 386331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn } 386431ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn 3865b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn public long[] getProcessPss(int[] pids) throws RemoteException { 3866b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn Parcel data = Parcel.obtain(); 3867b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn Parcel reply = Parcel.obtain(); 3868b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3869b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.writeIntArray(pids); 3870b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn mRemote.transact(GET_PROCESS_PSS_TRANSACTION, data, reply, 0); 3871b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.readException(); 3872b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn long[] res = reply.createLongArray(); 3873b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.recycle(); 3874b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.recycle(); 3875b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn return res; 3876b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn } 3877b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn 3878661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn public void showBootMessage(CharSequence msg, boolean always) throws RemoteException { 3879661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn Parcel data = Parcel.obtain(); 3880661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn Parcel reply = Parcel.obtain(); 3881661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3882661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn TextUtils.writeToParcel(msg, data, 0); 3883661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.writeInt(always ? 1 : 0); 3884661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn mRemote.transact(SHOW_BOOT_MESSAGE_TRANSACTION, data, reply, 0); 3885661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn reply.readException(); 3886661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.recycle(); 3887661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn reply.recycle(); 3888661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn } 3889661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn 389090c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn public void dismissKeyguardOnNextActivity() throws RemoteException { 389190c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn Parcel data = Parcel.obtain(); 389290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn Parcel reply = Parcel.obtain(); 389390c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 389490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn mRemote.transact(DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION, data, reply, 0); 389590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn reply.readException(); 389690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn data.recycle(); 389790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn reply.recycle(); 389890c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn } 389990c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn 3900dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell public boolean targetTaskAffinityMatchesActivity(IBinder token, String destAffinity) 3901dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell throws RemoteException { 3902dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel data = Parcel.obtain(); 3903dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel reply = Parcel.obtain(); 3904dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInterfaceToken(IActivityManager.descriptor); 3905dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeStrongBinder(token); 3906dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeString(destAffinity); 3907dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell mRemote.transact(TARGET_TASK_AFFINITY_MATCHES_ACTIVITY_TRANSACTION, data, reply, 0); 3908dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.readException(); 3909dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean result = reply.readInt() != 0; 3910dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.recycle(); 3911dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.recycle(); 3912dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return result; 3913dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 3914dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 3915dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell public boolean navigateUpTo(IBinder token, Intent target, int resultCode, Intent resultData) 3916dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell throws RemoteException { 3917dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel data = Parcel.obtain(); 3918dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel reply = Parcel.obtain(); 3919dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInterfaceToken(IActivityManager.descriptor); 3920dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeStrongBinder(token); 3921dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell target.writeToParcel(data, 0); 3922dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInt(resultCode); 3923dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell if (resultData != null) { 3924dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInt(1); 3925dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell resultData.writeToParcel(data, 0); 3926dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } else { 3927dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInt(0); 3928dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 3929dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell mRemote.transact(NAVIGATE_UP_TO_TRANSACTION, data, reply, 0); 3930dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.readException(); 3931dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean result = reply.readInt() != 0; 3932dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.recycle(); 3933dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.recycle(); 3934dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return result; 3935dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 3936dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 39375320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn public int getLaunchedFromUid(IBinder activityToken) throws RemoteException { 39385320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn Parcel data = Parcel.obtain(); 39395320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn Parcel reply = Parcel.obtain(); 39405320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 39415320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.writeStrongBinder(activityToken); 39425320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn mRemote.transact(GET_LAUNCHED_FROM_UID_TRANSACTION, data, reply, 0); 39435320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.readException(); 39445320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn int result = reply.readInt(); 39455320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.recycle(); 39465320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.recycle(); 39475320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn return result; 39485320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn } 39495320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn 39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private IBinder mRemote; 39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 3952