115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/* 215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2007 The Android Open Source Project 315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License. 615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at 715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * http://www.apache.org/licenses/LICENSE-2.0 915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software 1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS, 1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and 1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License. 1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */ 1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content.pm; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Overall information about the contents of a package. This corresponds 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to all of the information collected from AndroidManifest.xml. 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class PackageInfo implements Parcelable { 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The name of this package. From the <manifest> tag's "name" 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * attribute. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String packageName; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The version number of this package, as specified by the <manifest> 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * tag's {@link android.R.styleable#AndroidManifest_versionCode versionCode} 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * attribute. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int versionCode; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The version name of this package, as specified by the <manifest> 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * tag's {@link android.R.styleable#AndroidManifest_versionName versionName} 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * attribute. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String versionName; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The shared user ID name of this package, as specified by the <manifest> 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * tag's {@link android.R.styleable#AndroidManifest_sharedUserId sharedUserId} 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * attribute. 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String sharedUserId; 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The shared user ID label of this package, as specified by the <manifest> 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * tag's {@link android.R.styleable#AndroidManifest_sharedUserLabel sharedUserLabel} 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * attribute. 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int sharedUserLabel; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Information collected from the <application> tag, or null if 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * there was none. 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ApplicationInfo applicationInfo; 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6878d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn * The time at which the app was first installed. Units are as 6978d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn * per {@link System#currentTimeMillis()}. 7078d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn */ 7178d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn public long firstInstallTime; 7278d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn 7378d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn /** 7478d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn * The time at which the app was last updated. Units are as 7578d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn * per {@link System#currentTimeMillis()}. 7678d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn */ 7778d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn public long lastUpdateTime; 7878d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn 7978d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn /** 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * All kernel group-IDs that have been assigned to this package. 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This is only filled in if the flag {@link PackageManager#GET_GIDS} was set. 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int[] gids; 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestActivity 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <activity>} tags included under <application>, 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_ACTIVITIES} was set. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ActivityInfo[] activities; 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestReceiver 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <receiver>} tags included under <application>, 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_RECEIVERS} was set. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ActivityInfo[] receivers; 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestService 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <service>} tags included under <application>, 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_SERVICES} was set. 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ServiceInfo[] services; 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestProvider 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <provider>} tags included under <application>, 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_PROVIDERS} was set. 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ProviderInfo[] providers; 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestInstrumentation 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <instrumentation>} tags included under <manifest>, 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_INSTRUMENTATION} was set. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InstrumentationInfo[] instrumentation; 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestPermission 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <permission>} tags included under <manifest>, 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_PERMISSIONS} was set. 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public PermissionInfo[] permissions; 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all {@link android.R.styleable#AndroidManifestUsesPermission 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <uses-permission>} tags included under <manifest>, 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_PERMISSIONS} was set. This list includes 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * all permissions requested, even those that were not granted or known 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by the system at install time. 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String[] requestedPermissions; 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 144e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * Array of flags of all {@link android.R.styleable#AndroidManifestUsesPermission 145e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * <uses-permission>} tags included under <manifest>, 146e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * or null if there were none. This is only filled in if the flag 147e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * {@link PackageManager#GET_PERMISSIONS} was set. Each value matches 148e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * the corresponding entry in {@link #requestedPermissions}, and will have 149e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * the flags {@link #REQUESTED_PERMISSION_REQUIRED} and 150e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * {@link #REQUESTED_PERMISSION_GRANTED} set as appropriate. 151e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn */ 152e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn public int[] requestedPermissionsFlags; 153e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn 154e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn /** 155e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * Flag for {@link #requestedPermissionsFlags}: the requested permission 156e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * is required for the application to run; the user can not optionally 157e824120016248bcfe3962883fe9f3b0481dd1c3dDianne Hackborn * disable it. Currently all permissions are required. 158e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn */ 159e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn public static final int REQUESTED_PERMISSION_REQUIRED = 1<<0; 160e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn 161e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn /** 162e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * Flag for {@link #requestedPermissionsFlags}: the requested permission 163e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn * is currently granted to the application. 164e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn */ 165e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn public static final int REQUESTED_PERMISSION_GRANTED = 1<<1; 166e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn 167e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn /** 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Array of all signatures read from the package file. This is only filled 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in if the flag {@link PackageManager#GET_SIGNATURES} was set. 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Signature[] signatures; 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Application specified preferred configuration 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.R.styleable#AndroidManifestUsesConfiguration 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <uses-configuration>} tags included under <manifest>, 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there were none. This is only filled in if the flag 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#GET_CONFIGURATIONS} was set. 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ConfigurationInfo[] configPreferences; 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18249237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn /** 18349237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn * The features that this application has said it requires. 18449237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn */ 18549237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn public FeatureInfo[] reqFeatures; 186117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu 187117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu /** 188117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * Constant corresponding to <code>auto</code> in 189117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * the {@link android.R.attr#installLocation} attribute. 190117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * @hide 191117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu */ 19290d8ee650be988d8479f4f14ae8e541bb4cb034bSuchi Amalapurapu public static final int INSTALL_LOCATION_UNSPECIFIED = -1; 19390d8ee650be988d8479f4f14ae8e541bb4cb034bSuchi Amalapurapu /** 19490d8ee650be988d8479f4f14ae8e541bb4cb034bSuchi Amalapurapu * Constant corresponding to <code>auto</code> in 19590d8ee650be988d8479f4f14ae8e541bb4cb034bSuchi Amalapurapu * the {@link android.R.attr#installLocation} attribute. 19690d8ee650be988d8479f4f14ae8e541bb4cb034bSuchi Amalapurapu * @hide 19790d8ee650be988d8479f4f14ae8e541bb4cb034bSuchi Amalapurapu */ 198117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu public static final int INSTALL_LOCATION_AUTO = 0; 199117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu /** 200117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * Constant corresponding to <code>internalOnly</code> in 201117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * the {@link android.R.attr#installLocation} attribute. 202117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * @hide 203117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu */ 204117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu public static final int INSTALL_LOCATION_INTERNAL_ONLY = 1; 205117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu /** 206117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * Constant corresponding to <code>preferExternal</code> in 207117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * the {@link android.R.attr#installLocation} attribute. 208117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * @hide 209117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu */ 210117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu public static final int INSTALL_LOCATION_PREFER_EXTERNAL = 2; 211117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu /** 212a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu * The install location requested by the activity. From the 213117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * {@link android.R.attr#installLocation} attribute, one of 214117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * {@link #INSTALL_LOCATION_AUTO}, 215117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * {@link #INSTALL_LOCATION_INTERNAL_ONLY}, 216117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * {@link #INSTALL_LOCATION_PREFER_EXTERNAL} 217117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu * @hide 218117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu */ 219117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu public int installLocation = INSTALL_LOCATION_INTERNAL_ONLY; 22049237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public PackageInfo() { 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "PackageInfo{" 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + Integer.toHexString(System.identityHashCode(this)) 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + packageName + "}"; 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel dest, int parcelableFlags) { 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(packageName); 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt(versionCode); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(versionName); 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(sharedUserId); 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt(sharedUserLabel); 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (applicationInfo != null) { 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt(1); 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project applicationInfo.writeToParcel(dest, parcelableFlags); 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt(0); 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24678d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn dest.writeLong(firstInstallTime); 24778d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn dest.writeLong(lastUpdateTime); 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeIntArray(gids); 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(activities, parcelableFlags); 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(receivers, parcelableFlags); 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(services, parcelableFlags); 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(providers, parcelableFlags); 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(instrumentation, parcelableFlags); 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(permissions, parcelableFlags); 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeStringArray(requestedPermissions); 256e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn dest.writeIntArray(requestedPermissionsFlags); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(signatures, parcelableFlags); 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeTypedArray(configPreferences, parcelableFlags); 25949237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn dest.writeTypedArray(reqFeatures, parcelableFlags); 260117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu dest.writeInt(installLocation); 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<PackageInfo> CREATOR 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = new Parcelable.Creator<PackageInfo>() { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public PackageInfo createFromParcel(Parcel source) { 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new PackageInfo(source); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public PackageInfo[] newArray(int size) { 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new PackageInfo[size]; 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private PackageInfo(Parcel source) { 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project packageName = source.readString(); 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project versionCode = source.readInt(); 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project versionName = source.readString(); 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sharedUserId = source.readString(); 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sharedUserLabel = source.readInt(); 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int hasApp = source.readInt(); 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (hasApp != 0) { 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project applicationInfo = ApplicationInfo.CREATOR.createFromParcel(source); 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28478d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn firstInstallTime = source.readLong(); 28578d688369a2240009d3bbe4126996a973b2e2fe2Dianne Hackborn lastUpdateTime = source.readLong(); 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project gids = source.createIntArray(); 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project activities = source.createTypedArray(ActivityInfo.CREATOR); 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project receivers = source.createTypedArray(ActivityInfo.CREATOR); 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project services = source.createTypedArray(ServiceInfo.CREATOR); 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project providers = source.createTypedArray(ProviderInfo.CREATOR); 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project instrumentation = source.createTypedArray(InstrumentationInfo.CREATOR); 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project permissions = source.createTypedArray(PermissionInfo.CREATOR); 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project requestedPermissions = source.createStringArray(); 294e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn requestedPermissionsFlags = source.createIntArray(); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project signatures = source.createTypedArray(Signature.CREATOR); 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project configPreferences = source.createTypedArray(ConfigurationInfo.CREATOR); 29749237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn reqFeatures = source.createTypedArray(FeatureInfo.CREATOR); 298117818e4f171b1fd9daa05349c48f61388f04567Suchi Amalapurapu installLocation = source.readInt(); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 301