# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Constants | Inherited Constants | Fields | Ctors | Methods | Inherited Methods

# 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
From interface `android.os.Parcelable`
`int` | `CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` | `PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `writeToParcel(Parcel, int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

### 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
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `android.os.Parcelable`
`abstract int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`abstract void` | `writeToParcel(Parcel dest, int flags)` Flatten this object in to a Parcel.

## 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:

- `FeatureInfo.FLAG_REQUIRED`

### 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:

- `FeatureInfo.FLAG_REQUIRED`

### 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:

- `getLongVersionCode()`

### 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:

- `getLongVersionCode()`

### 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

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*