# Print output for @column tags ?> PackageInfo - Android SDK | Android Developers

Most visited

Recently visited

PackageInfo

public class PackageInfo
extends Object implements Parcelable

java.lang.Object
   ↳ android.content.pm.PackageInfo


Overall information about the contents of a package. This corresponds to all of the information collected from AndroidManifest.xml.

Summary

Constants

int INSTALL_LOCATION_AUTO

Constant corresponding to auto in the R.attr.installLocation attribute.

int INSTALL_LOCATION_INTERNAL_ONLY

Constant corresponding to internalOnly in the R.attr.installLocation attribute.

int INSTALL_LOCATION_PREFER_EXTERNAL

Constant corresponding to preferExternal in the R.attr.installLocation attribute.

int REQUESTED_PERMISSION_GRANTED

Flag for requestedPermissionsFlags: the requested permission is currently granted to the application.

int REQUESTED_PERMISSION_NEVER_FOR_LOCATION

Flag for requestedPermissionsFlags: the requested permission has declared neverForLocation in their manifest as a strong assertion by a developer that they will never use this permission to derive the physical location of the device, regardless of Manifest.permission.ACCESS_FINE_LOCATION and/or Manifest.permission.ACCESS_COARSE_LOCATION being granted.

Inherited constants

Fields

public static final Creator<PackageInfo> CREATOR

public ActivityInfo[] activities

Array of all <activity> tags included under <application>, or null if there were none.

public ApplicationInfo applicationInfo

Information collected from the <application> tag, or null if there was none.

public Attribution[] attributions

Array of all <attribution> tags included under <manifest>, or null if there were none.

public int baseRevisionCode

The revision number of the base APK for this package, as specified by the <manifest> tag's revisionCode attribute.

public ConfigurationInfo[] configPreferences

Application specified preferred configuration <uses-configuration> tags included under <manifest>, or null if there were none.

public FeatureGroupInfo[] featureGroups

Groups of features that this application has requested.

public long firstInstallTime

The time at which the app was first installed.

public int[] gids

All kernel group-IDs that have been assigned to this package.

public int installLocation

The install location requested by the package.

public InstrumentationInfo[] instrumentation

Array of all <instrumentation> tags included under <manifest>, or null if there were none.

public boolean isApex

Whether the package is an APEX package.

public long lastUpdateTime

The time at which the app was last updated.

public String packageName

The name of this package.

public PermissionInfo[] permissions

Array of all <permission> tags included under <manifest>, or null if there were none.

public ProviderInfo[] providers

Array of all <provider> tags included under <application>, or null if there were none.

public ActivityInfo[] receivers

Array of all <receiver> tags included under <application>, or null if there were none.

public FeatureInfo[] reqFeatures

Features that this application has requested.

public String[] requestedPermissions

Array of all <uses-permission> tags included under <manifest>, or null if there were none.

public int[] requestedPermissionsFlags

Array of flags of all <uses-permission> tags included under <manifest>, or null if there were none.

public ServiceInfo[] services

Array of all <service> tags included under <application>, or null if there were none.

public String sharedUserId

The shared user ID name of this package, as specified by the <manifest> tag's sharedUserId attribute.

public int sharedUserLabel

The shared user ID label of this package, as specified by the <manifest> tag's sharedUserLabel attribute.

public Signature[] signatures

This field is deprecated. use signingInfo instead

public SigningInfo signingInfo

Signing information read from the package file, potentially including past signing certificates no longer used after signing certificate rotation.

public String[] splitNames

The names of any installed split APKs for this package.

public int[] splitRevisionCodes

The revision number of any split APKs for this package, as specified by the <manifest> tag's revisionCode attribute.

public int versionCode

This field is deprecated. Use getLongVersionCode() instead, which includes both this and the additional versionCodeMajor attribute. The version number of this package, as specified by the <manifest> tag's versionCode attribute.

public String versionName

The version name of this package, as specified by the <manifest> tag's versionName attribute.

Public constructors

PackageInfo()

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

long getLongVersionCode()

Return versionCode and versionCodeMajor combined together as a single long value.

void setLongVersionCode(long longVersionCode)

Set the full version code in this PackageInfo, updating versionCode with the lower bits.

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel dest, int parcelableFlags)

Flatten this object in to a Parcel.

Inherited methods

Constants

INSTALL_LOCATION_AUTO

public static final int INSTALL_LOCATION_AUTO

Constant corresponding to auto in the R.attr.installLocation attribute.

Constant Value: 0 (0x00000000)

INSTALL_LOCATION_INTERNAL_ONLY

public static final int INSTALL_LOCATION_INTERNAL_ONLY

Constant corresponding to internalOnly in the R.attr.installLocation attribute.

Constant Value: 1 (0x00000001)

INSTALL_LOCATION_PREFER_EXTERNAL

public static final int INSTALL_LOCATION_PREFER_EXTERNAL

Constant corresponding to preferExternal in the R.attr.installLocation attribute.

Constant Value: 2 (0x00000002)

REQUESTED_PERMISSION_GRANTED

public static final int REQUESTED_PERMISSION_GRANTED

Flag for requestedPermissionsFlags: the requested permission is currently granted to the application.

Constant Value: 2 (0x00000002)

REQUESTED_PERMISSION_NEVER_FOR_LOCATION

public static final int REQUESTED_PERMISSION_NEVER_FOR_LOCATION

Flag for requestedPermissionsFlags: the requested permission has declared neverForLocation in their manifest as a strong assertion by a developer that they will never use this permission to derive the physical location of the device, regardless of Manifest.permission.ACCESS_FINE_LOCATION and/or Manifest.permission.ACCESS_COARSE_LOCATION being granted.

Constant Value: 65536 (0x00010000)

Fields

CREATOR

public static final Creator<PackageInfo> CREATOR

activities

public ActivityInfo[] activities

Array of all <activity> tags included under <application>, or null if there were none. This is only filled in if the flag PackageManager#GET_ACTIVITIES was set.

applicationInfo

public ApplicationInfo applicationInfo

Information collected from the <application> tag, or null if there was none.

attributions

public Attribution[] attributions

Array of all <attribution> tags included under <manifest>, or null if there were none. This is only filled if the flag PackageManager#GET_ATTRIBUTIONS was set.

baseRevisionCode

public int baseRevisionCode

The revision number of the base APK for this package, as specified by the <manifest> tag's revisionCode attribute.

configPreferences

public ConfigurationInfo[] configPreferences

Application specified preferred configuration <uses-configuration> tags included under <manifest>, or null if there were none. This is only filled in if the flag PackageManager#GET_CONFIGURATIONS was set.

featureGroups

public FeatureGroupInfo[] featureGroups

Groups of features that this application has requested. Each group contains a set of features that are required. A device must match the features listed in reqFeatures and one or more FeatureGroups in order to have satisfied the feature requirement.

See also:

firstInstallTime

public long firstInstallTime

The time at which the app was first installed. Units are as per System#currentTimeMillis().

gids

public int[] gids

All kernel group-IDs that have been assigned to this package. This is only filled in if the flag PackageManager#GET_GIDS was set.

installLocation

public int installLocation

The install location requested by the package. From the R.attr.installLocation attribute, one of INSTALL_LOCATION_AUTO, INSTALL_LOCATION_INTERNAL_ONLY, INSTALL_LOCATION_PREFER_EXTERNAL

instrumentation

public InstrumentationInfo[] instrumentation

Array of all <instrumentation> tags included under <manifest>, or null if there were none. This is only filled in if the flag PackageManager#GET_INSTRUMENTATION was set.

isApex

public boolean isApex

Whether the package is an APEX package.

lastUpdateTime

public long lastUpdateTime

The time at which the app was last updated. Units are as per System#currentTimeMillis().

packageName

public String packageName

The name of this package. From the <manifest> tag's "name" attribute.

permissions

public PermissionInfo[] permissions

Array of all <permission> tags included under <manifest>, or null if there were none. This is only filled in if the flag PackageManager#GET_PERMISSIONS was set.

providers

public ProviderInfo[] providers

Array of all <provider> tags included under <application>, or null if there were none. This is only filled in if the flag PackageManager#GET_PROVIDERS was set.

receivers

public ActivityInfo[] receivers

Array of all <receiver> tags included under <application>, or null if there were none. This is only filled in if the flag PackageManager#GET_RECEIVERS was set.

reqFeatures

public FeatureInfo[] reqFeatures

Features that this application has requested.

See also:

requestedPermissions

public String[] requestedPermissions

Array of all <uses-permission> tags included under <manifest>, or null if there were none. This is only filled in if the flag PackageManager#GET_PERMISSIONS was set. This list includes all permissions requested, even those that were not granted or known by the system at install time.

requestedPermissionsFlags

public int[] requestedPermissionsFlags

Array of flags of all <uses-permission> tags included under <manifest>, or null if there were none. This is only filled in if the flag PackageManager#GET_PERMISSIONS was set. Each value matches the corresponding entry in requestedPermissions, and will have the flag REQUESTED_PERMISSION_GRANTED set as appropriate.

services

public ServiceInfo[] services

Array of all <service> tags included under <application>, or null if there were none. This is only filled in if the flag PackageManager#GET_SERVICES was set.

sharedUserId

public String sharedUserId

The shared user ID name of this package, as specified by the <manifest> tag's sharedUserId attribute.

sharedUserLabel

public int sharedUserLabel

The shared user ID label of this package, as specified by the <manifest> tag's sharedUserLabel attribute.

signatures

public Signature[] signatures

This field is deprecated.
use signingInfo instead

Array of all signatures read from the package file. This is only filled in if the flag PackageManager#GET_SIGNATURES was set. A package must be signed with at least one certificate which is at position zero. The package can be signed with additional certificates which appear as subsequent entries. Note: Signature ordering is not guaranteed to be stable which means that a package signed with certificates A and B is equivalent to being signed with certificates B and A. This means that in case multiple signatures are reported you cannot assume the one at the first position to be the same across updates. Deprecated This has been replaced by the PackageInfo#signingInfo field, which takes into account signing certificate rotation. For backwards compatibility in the event of signing certificate rotation, this will return the oldest reported signing certificate, so that an application will appear to callers as though no rotation occurred.

signingInfo

public SigningInfo signingInfo

Signing information read from the package file, potentially including past signing certificates no longer used after signing certificate rotation. This is only filled in if the flag PackageManager#GET_SIGNING_CERTIFICATES was set. Use this field instead of the deprecated signatures field. See SigningInfo for more information on its contents.

splitNames

public String[] splitNames

The names of any installed split APKs for this package.

splitRevisionCodes

public int[] splitRevisionCodes

The revision number of any split APKs for this package, as specified by the <manifest> tag's revisionCode attribute. Indexes are a 1:1 mapping against splitNames.

versionCode

public int versionCode

This field is deprecated.
Use getLongVersionCode() instead, which includes both this and the additional versionCodeMajor attribute. The version number of this package, as specified by the <manifest> tag's versionCode attribute.

See also:

versionName

public String versionName

The version name of this package, as specified by the <manifest> tag's versionName attribute.

Public constructors

PackageInfo

public PackageInfo ()

Public methods

describeContents

public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

getLongVersionCode

public long getLongVersionCode ()

Return versionCode and versionCodeMajor combined together as a single long value. The versionCodeMajor is placed in the upper 32 bits.

Returns
long

setLongVersionCode

public void setLongVersionCode (long longVersionCode)

Set the full version code in this PackageInfo, updating versionCode with the lower bits.

Parameters
longVersionCode long

See also:

toString

public String toString ()

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

writeToParcel

public void writeToParcel (Parcel dest, 
                int parcelableFlags)

Flatten this object in to a Parcel.

Parameters
dest Parcel: The Parcel in which the object should be written.

parcelableFlags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES