public abstract class PackageManager

extends Object

Class for retrieving various kinds of information related to the application packages that are currently installed on the device. You can find this class through Context#getPackageManager .

Nested classes

class PackageManager.NameNotFoundException This exception is thrown when a given package, application, or component name cannot be found.

Public constructors PackageManager()

Inherited methods java.lang.Object From class 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.

Constants

CERT_INPUT_RAW_X509 Added in API level 28 public static final int CERT_INPUT_RAW_X509 Certificate input bytes: the input bytes represent an encoded X.509 Certificate which could be generated using an CertificateFactory Constant Value: 0 (0x00000000)

CERT_INPUT_SHA256 Added in API level 28 public static final int CERT_INPUT_SHA256 Certificate input bytes: the input bytes represent the SHA256 output of an encoded X.509 Certificate. Constant Value: 1 (0x00000001)

COMPONENT_ENABLED_STATE_DEFAULT Added in API level 1 public static final int COMPONENT_ENABLED_STATE_DEFAULT Flag for setApplicationEnabledSetting(java.lang.String, int, int) and setComponentEnabledSetting(android.content.ComponentName, int, int) : This component or application is in its default enabled state (as specified in its manifest). Explicitly setting the component state to this value restores it's enabled state to whatever is set in the manifest. Constant Value: 0 (0x00000000)

COMPONENT_ENABLED_STATE_DISABLED Added in API level 1 public static final int COMPONENT_ENABLED_STATE_DISABLED Flag for setApplicationEnabledSetting(java.lang.String, int, int) and setComponentEnabledSetting(android.content.ComponentName, int, int) : This component or application has been explicitly disabled, regardless of what it has specified in its manifest. Constant Value: 2 (0x00000002)

COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED Added in API level 18 public static final int COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED Flag for setApplicationEnabledSetting(java.lang.String, int, int) only: This application should be considered, until the point where the user actually wants to use it. This means that it will not normally show up to the user (such as in the launcher), but various parts of the user interface can use GET_DISABLED_UNTIL_USED_COMPONENTS to still see it and allow the user to select it (as for example an IME, device admin, etc). Such code, once the user has selected the app, should at that point also make it enabled. This option currently can not be used with setComponentEnabledSetting(android.content.ComponentName, int, int) . Constant Value: 4 (0x00000004)

COMPONENT_ENABLED_STATE_DISABLED_USER Added in API level 14 public static final int COMPONENT_ENABLED_STATE_DISABLED_USER Flag for setApplicationEnabledSetting(java.lang.String, int, int) only: The user has explicitly disabled the application, regardless of what it has specified in its manifest. Because this is due to the user's request, they may re-enable it if desired through the appropriate system UI. This option currently cannot be used with setComponentEnabledSetting(android.content.ComponentName, int, int) . Constant Value: 3 (0x00000003)

COMPONENT_ENABLED_STATE_ENABLED Added in API level 1 public static final int COMPONENT_ENABLED_STATE_ENABLED Flag for setApplicationEnabledSetting(java.lang.String, int, int) and setComponentEnabledSetting(android.content.ComponentName, int, int) : This component or application has been explictily enabled, regardless of what it has specified in its manifest. Constant Value: 1 (0x00000001)

DONT_KILL_APP Added in API level 1 public static final int DONT_KILL_APP Flag parameter for setComponentEnabledSetting(android.content.ComponentName, int, int) to indicate that you don't want to kill the app containing the component. Be careful when you set this since changing component states can make the containing application's behavior unpredictable. Constant Value: 1 (0x00000001)

EXTRA_VERIFICATION_ID Added in API level 14 public static final String EXTRA_VERIFICATION_ID Extra field name for the ID of a package pending verification. Passed to a package verifier and is used to call back to PackageManager#verifyPendingInstall(int, int) Constant Value: "android.content.pm.extra.VERIFICATION_ID"

EXTRA_VERIFICATION_RESULT Added in API level 17 public static final String EXTRA_VERIFICATION_RESULT Extra field name for the result of a verification, either VERIFICATION_ALLOW , or VERIFICATION_REJECT . Passed to package verifiers after a package is verified. Constant Value: "android.content.pm.extra.VERIFICATION_RESULT"

FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS Added in API level 26 public static final String FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports running activities on secondary displays. Constant Value: "android.software.activities_on_secondary_displays"

FEATURE_APP_WIDGETS Added in API level 18 public static final String FEATURE_APP_WIDGETS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports app widgets. Constant Value: "android.software.app_widgets"

FEATURE_AUDIO_LOW_LATENCY Added in API level 9 public static final String FEATURE_AUDIO_LOW_LATENCY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's audio pipeline is low-latency, more suitable for audio applications sensitive to delays or lag in sound input or output. Constant Value: "android.hardware.audio.low_latency"

FEATURE_AUDIO_OUTPUT Added in API level 21 public static final String FEATURE_AUDIO_OUTPUT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes at least one form of audio output, as defined in the Android Compatibility Definition Document (CDD) section 7.8 Audio. Constant Value: "android.hardware.audio.output"

FEATURE_AUDIO_PRO Added in API level 23 public static final String FEATURE_AUDIO_PRO Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has professional audio level of functionality and performance. Constant Value: "android.hardware.audio.pro"

FEATURE_AUTOFILL Added in API level 26 public static final String FEATURE_AUTOFILL Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports autofill of user credentials, addresses, credit cards, etc via integration with autofill providers . Constant Value: "android.software.autofill"

FEATURE_AUTOMOTIVE Added in API level 23 public static final String FEATURE_AUTOMOTIVE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : This is a device dedicated to showing UI on a vehicle headunit. A headunit here is defined to be inside a vehicle that may or may not be moving. A headunit uses either a primary display in the center console and/or additional displays in the instrument cluster or elsewhere in the vehicle. Headunit display(s) have limited size and resolution. The user will likely be focused on driving so limiting driver distraction is a primary concern. User input can be a variety of hard buttons, touch, rotary controllers and even mouse- like interfaces. Constant Value: "android.hardware.type.automotive"

FEATURE_BACKUP Added in API level 20 public static final String FEATURE_BACKUP Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device can perform backup and restore operations on installed applications. Constant Value: "android.software.backup"

FEATURE_BLUETOOTH Added in API level 8 public static final String FEATURE_BLUETOOTH Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device is capable of communicating with other devices via Bluetooth. Constant Value: "android.hardware.bluetooth"

FEATURE_BLUETOOTH_LE Added in API level 18 public static final String FEATURE_BLUETOOTH_LE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device is capable of communicating with other devices via Bluetooth Low Energy radio. Constant Value: "android.hardware.bluetooth_le"

FEATURE_CAMERA Added in API level 7 public static final String FEATURE_CAMERA Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a camera facing away from the screen. Constant Value: "android.hardware.camera"

FEATURE_CAMERA_ANY Added in API level 17 public static final String FEATURE_CAMERA_ANY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has at least one camera pointing in some direction, or can support an external camera being connected to it. Constant Value: "android.hardware.camera.any"

FEATURE_CAMERA_AR Added in API level 28 public static final String FEATURE_CAMERA_AR Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : At least one of the cameras on the device supports the MOTION_TRACKING capability level. Constant Value: "android.hardware.camera.ar"

FEATURE_CAMERA_AUTOFOCUS Added in API level 7 public static final String FEATURE_CAMERA_AUTOFOCUS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's camera supports auto-focus. Constant Value: "android.hardware.camera.autofocus"

FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING Added in API level 21 public static final String FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : At least one of the cameras on the device supports the manual post-processing capability level. Constant Value: "android.hardware.camera.capability.manual_post_processing"

FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR Added in API level 21 public static final String FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : At least one of the cameras on the device supports the manual sensor capability level. Constant Value: "android.hardware.camera.capability.manual_sensor"

FEATURE_CAMERA_CAPABILITY_RAW Added in API level 21 public static final String FEATURE_CAMERA_CAPABILITY_RAW Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : At least one of the cameras on the device supports the RAW capability level. Constant Value: "android.hardware.camera.capability.raw"

FEATURE_CAMERA_CONCURRENT Added in API level 30 public static final String FEATURE_CAMERA_CONCURRENT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's main front and back cameras can stream concurrently as described in CameraManager.getConcurrentCameraIds() . While CameraManager.getConcurrentCameraIds() and associated APIs are only available on API level 30 or newer, this feature flag may be advertised by devices on API levels below 30. If present on such a device, the same guarantees hold: The main front and main back camera can be used at the same time, with guaranteed stream configurations as defined in the table for concurrent streaming at CameraDevice.createCaptureSession(android.hardware.camera2.params.SessionConfiguration) . Constant Value: "android.hardware.camera.concurrent"

FEATURE_CAMERA_EXTERNAL Added in API level 20 public static final String FEATURE_CAMERA_EXTERNAL Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device can support having an external camera connected to it. The external camera may not always be connected or available to applications to use. Constant Value: "android.hardware.camera.external"

FEATURE_CAMERA_FLASH Added in API level 7 public static final String FEATURE_CAMERA_FLASH Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's camera supports flash. Constant Value: "android.hardware.camera.flash"

FEATURE_CAMERA_FRONT Added in API level 9 public static final String FEATURE_CAMERA_FRONT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a front facing camera. Constant Value: "android.hardware.camera.front"

FEATURE_CAMERA_LEVEL_FULL Added in API level 21 public static final String FEATURE_CAMERA_LEVEL_FULL Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : At least one of the cameras on the device supports the full hardware capability level. Constant Value: "android.hardware.camera.level.full"

FEATURE_CONNECTION_SERVICE Added in API level 21 public static final String FEATURE_CONNECTION_SERVICE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The Connection Service API is enabled on the device. Constant Value: "android.software.connectionservice"

FEATURE_CONSUMER_IR Added in API level 19 public static final String FEATURE_CONSUMER_IR Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device is capable of communicating with consumer IR devices. Constant Value: "android.hardware.consumerir"

FEATURE_CONTROLS Added in API level 30 public static final String FEATURE_CONTROLS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports a system interface for the user to select and bind device control services provided by applications. See also: ControlsProviderService Constant Value: "android.software.controls"

FEATURE_DEVICE_ADMIN Added in API level 19 public static final String FEATURE_DEVICE_ADMIN Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports device policy enforcement via device admins. Constant Value: "android.software.device_admin"

FEATURE_EMBEDDED Added in API level 26 public static final String FEATURE_EMBEDDED Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : This is a device for IoT and may not have an UI. An embedded device is defined as a full stack Android device with or without a display and no user-installable apps. Constant Value: "android.hardware.type.embedded"

FEATURE_ETHERNET Added in API level 24 public static final String FEATURE_ETHERNET Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : This device supports ethernet. Constant Value: "android.hardware.ethernet"

FEATURE_FACE Added in API level 29 public static final String FEATURE_FACE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has biometric hardware to perform face authentication. Constant Value: "android.hardware.biometrics.face"

FEATURE_FAKETOUCH Added in API level 11 public static final String FEATURE_FAKETOUCH Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device does not have a touch screen, but does support touch emulation for basic events. For instance, the device might use a mouse or remote control to drive a cursor, and emulate basic touch pointer events like down, up, drag, etc. All devices that support android.hardware.touchscreen or a sub-feature are presumed to also support faketouch. Constant Value: "android.hardware.faketouch"

FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT Added in API level 13 public static final String FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device does not have a touch screen, but does support touch emulation for basic events that supports distinct tracking of two or more fingers. This is an extension of FEATURE_FAKETOUCH for input devices with this capability. Note that unlike a distinct multitouch screen as defined by FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT , these kinds of input devices will not actually provide full two-finger gestures since the input is being transformed to cursor movement on the screen. That is, single finger gestures will move a cursor; two-finger swipes will result in single-finger touch events; other two-finger gestures will result in the corresponding two-finger touch event. Constant Value: "android.hardware.faketouch.multitouch.distinct"

FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND Added in API level 13 public static final String FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device does not have a touch screen, but does support touch emulation for basic events that supports tracking a hand of fingers (5 or more fingers) fully independently. This is an extension of FEATURE_FAKETOUCH for input devices with this capability. Note that unlike a multitouch screen as defined by FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND , not all two finger gestures can be detected due to the limitations described for FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT . Constant Value: "android.hardware.faketouch.multitouch.jazzhand"

FEATURE_FINGERPRINT Added in API level 23 public static final String FEATURE_FINGERPRINT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has biometric hardware to detect a fingerprint. Constant Value: "android.hardware.fingerprint"

FEATURE_FREEFORM_WINDOW_MANAGEMENT Added in API level 24 public static final String FEATURE_FREEFORM_WINDOW_MANAGEMENT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports freeform window management. Windows have title bars and can be moved and resized. Constant Value: "android.software.freeform_window_management"

FEATURE_GAMEPAD Added in API level 21 public static final String FEATURE_GAMEPAD Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has all of the inputs necessary to be considered a compatible game controller, or includes a compatible game controller in the box. Constant Value: "android.hardware.gamepad"

FEATURE_HIFI_SENSORS Added in API level 23 public static final String FEATURE_HIFI_SENSORS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports high fidelity sensor processing capabilities. Constant Value: "android.hardware.sensor.hifi_sensors"

FEATURE_HOME_SCREEN Added in API level 18 public static final String FEATURE_HOME_SCREEN Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports a home screen that is replaceable by third party applications. Constant Value: "android.software.home_screen"

FEATURE_INPUT_METHODS Added in API level 18 public static final String FEATURE_INPUT_METHODS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports adding new input methods implemented with the InputMethodService API. Constant Value: "android.software.input_methods"

FEATURE_IPSEC_TUNNELS Added in API level 29 public static final String FEATURE_IPSEC_TUNNELS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has the requisite kernel support for multinetworking-capable IPsec tunnels. This feature implies that the device supports XFRM Interfaces (CONFIG_XFRM_INTERFACE), or VTIs with kernel patches allowing updates of output/set mark via UPDSA. Constant Value: "android.software.ipsec_tunnels"

FEATURE_IRIS Added in API level 29 public static final String FEATURE_IRIS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has biometric hardware to perform iris authentication. Constant Value: "android.hardware.biometrics.iris"

FEATURE_LEANBACK Added in API level 21 public static final String FEATURE_LEANBACK Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports leanback UI. This is typically used in a living room television experience, but is a software feature unlike FEATURE_TELEVISION . Devices running with this feature will use resources associated with the "television" UI mode. Constant Value: "android.software.leanback"

FEATURE_LEANBACK_ONLY Added in API level 26 public static final String FEATURE_LEANBACK_ONLY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports only leanback UI. Only applications designed for this experience should be run, though this is not enforced by the system. Constant Value: "android.software.leanback_only"

FEATURE_LIVE_TV Added in API level 21 public static final String FEATURE_LIVE_TV Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports live TV and can display contents from TV inputs implemented with the TvInputService API. Constant Value: "android.software.live_tv"

FEATURE_LIVE_WALLPAPER Added in API level 7 public static final String FEATURE_LIVE_WALLPAPER Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports live wallpapers. Constant Value: "android.software.live_wallpaper"

FEATURE_LOCATION Added in API level 8 public static final String FEATURE_LOCATION Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports one or more methods of reporting current location. Constant Value: "android.hardware.location"

FEATURE_LOCATION_GPS Added in API level 8 public static final String FEATURE_LOCATION_GPS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a Global Positioning System receiver and can report precise location. Constant Value: "android.hardware.location.gps"

FEATURE_LOCATION_NETWORK Added in API level 8 public static final String FEATURE_LOCATION_NETWORK Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device can report location with coarse accuracy using a network-based geolocation system. Constant Value: "android.hardware.location.network"

FEATURE_MANAGED_USERS Added in API level 21 public static final String FEATURE_MANAGED_USERS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports creating secondary users and managed profiles via DevicePolicyManager . Constant Value: "android.software.managed_users"

FEATURE_MICROPHONE Added in API level 8 public static final String FEATURE_MICROPHONE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device can record audio via a microphone. Constant Value: "android.hardware.microphone"

FEATURE_MIDI Added in API level 23 public static final String FEATURE_MIDI Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a full implementation of the android.media.midi.* APIs. Constant Value: "android.software.midi"

FEATURE_NFC Added in API level 9 public static final String FEATURE_NFC Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device can communicate using Near-Field Communications (NFC). Constant Value: "android.hardware.nfc"

FEATURE_NFC_BEAM Added in API level 29 public static final String FEATURE_NFC_BEAM Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The Beam API is enabled on the device. Constant Value: "android.sofware.nfc.beam"

FEATURE_NFC_HOST_CARD_EMULATION Added in API level 19 public static final String FEATURE_NFC_HOST_CARD_EMULATION Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports host- based NFC card emulation. Constant Value: "android.hardware.nfc.hce"

FEATURE_NFC_HOST_CARD_EMULATION_NFCF Added in API level 24 public static final String FEATURE_NFC_HOST_CARD_EMULATION_NFCF Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports host- based NFC-F card emulation. Constant Value: "android.hardware.nfc.hcef"

FEATURE_NFC_OFF_HOST_CARD_EMULATION_ESE Added in API level 29 public static final String FEATURE_NFC_OFF_HOST_CARD_EMULATION_ESE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports eSE- based NFC card emulation. Constant Value: "android.hardware.nfc.ese"

FEATURE_NFC_OFF_HOST_CARD_EMULATION_UICC Added in API level 29 public static final String FEATURE_NFC_OFF_HOST_CARD_EMULATION_UICC Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports uicc- based NFC card emulation. Constant Value: "android.hardware.nfc.uicc"

FEATURE_PC Added in API level 27 public static final String FEATURE_PC Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : This is a device dedicated to be primarily used with keyboard, mouse or touchpad. This includes traditional desktop computers, laptops and variants such as convertibles or detachables. Due to the larger screen, the device will most likely use the FEATURE_FREEFORM_WINDOW_MANAGEMENT feature as well. Constant Value: "android.hardware.type.pc"

FEATURE_PICTURE_IN_PICTURE Added in API level 24 public static final String FEATURE_PICTURE_IN_PICTURE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports picture-in-picture multi-window mode. Constant Value: "android.software.picture_in_picture"

FEATURE_PRINTING Added in API level 20 public static final String FEATURE_PRINTING Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports printing. Constant Value: "android.software.print"

FEATURE_SCREEN_LANDSCAPE Added in API level 13 public static final String FEATURE_SCREEN_LANDSCAPE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports landscape orientation screens. For backwards compatibility, you can assume that if neither this nor FEATURE_SCREEN_PORTRAIT is set then the device supports both portrait and landscape. Constant Value: "android.hardware.screen.landscape"

FEATURE_SCREEN_PORTRAIT Added in API level 13 public static final String FEATURE_SCREEN_PORTRAIT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports portrait orientation screens. For backwards compatibility, you can assume that if neither this nor FEATURE_SCREEN_LANDSCAPE is set then the device supports both portrait and landscape. Constant Value: "android.hardware.screen.portrait"

FEATURE_SECURELY_REMOVES_USERS Added in API level 21 public static final String FEATURE_SECURELY_REMOVES_USERS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports secure removal of users. When a user is deleted the data associated with that user is securely deleted and no longer available. Constant Value: "android.software.securely_removes_users"

FEATURE_SECURE_LOCK_SCREEN Added in API level 29 public static final String FEATURE_SECURE_LOCK_SCREEN Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a secure implementation of keyguard, meaning the device supports PIN, pattern and password as defined in Android CDD Constant Value: "android.software.secure_lock_screen"

FEATURE_SENSOR_ACCELEROMETER Added in API level 8 public static final String FEATURE_SENSOR_ACCELEROMETER Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes an accelerometer. Constant Value: "android.hardware.sensor.accelerometer"

FEATURE_SENSOR_AMBIENT_TEMPERATURE Added in API level 21 public static final String FEATURE_SENSOR_AMBIENT_TEMPERATURE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes an ambient temperature sensor. Constant Value: "android.hardware.sensor.ambient_temperature"

FEATURE_SENSOR_BAROMETER Added in API level 9 public static final String FEATURE_SENSOR_BAROMETER Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a barometer (air pressure sensor.) Constant Value: "android.hardware.sensor.barometer"

FEATURE_SENSOR_COMPASS Added in API level 8 public static final String FEATURE_SENSOR_COMPASS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a magnetometer (compass). Constant Value: "android.hardware.sensor.compass"

FEATURE_SENSOR_GYROSCOPE Added in API level 9 public static final String FEATURE_SENSOR_GYROSCOPE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a gyroscope. Constant Value: "android.hardware.sensor.gyroscope"

FEATURE_SENSOR_HEART_RATE Added in API level 20 public static final String FEATURE_SENSOR_HEART_RATE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a heart rate monitor. Constant Value: "android.hardware.sensor.heartrate"

FEATURE_SENSOR_HEART_RATE_ECG Added in API level 21 public static final String FEATURE_SENSOR_HEART_RATE_ECG Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The heart rate sensor on this device is an Electrocardiogram. Constant Value: "android.hardware.sensor.heartrate.ecg"

FEATURE_SENSOR_HINGE_ANGLE Added in API level 30 public static final String FEATURE_SENSOR_HINGE_ANGLE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a hinge angle sensor. Constant Value: "android.hardware.sensor.hinge_angle"

FEATURE_SENSOR_LIGHT Added in API level 7 public static final String FEATURE_SENSOR_LIGHT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a light sensor. Constant Value: "android.hardware.sensor.light"

FEATURE_SENSOR_PROXIMITY Added in API level 7 public static final String FEATURE_SENSOR_PROXIMITY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a proximity sensor. Constant Value: "android.hardware.sensor.proximity"

FEATURE_SENSOR_RELATIVE_HUMIDITY Added in API level 21 public static final String FEATURE_SENSOR_RELATIVE_HUMIDITY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a relative humidity sensor. Constant Value: "android.hardware.sensor.relative_humidity"

FEATURE_SENSOR_STEP_COUNTER Added in API level 19 public static final String FEATURE_SENSOR_STEP_COUNTER Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a hardware step counter. Constant Value: "android.hardware.sensor.stepcounter"

FEATURE_SENSOR_STEP_DETECTOR Added in API level 19 public static final String FEATURE_SENSOR_STEP_DETECTOR Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device includes a hardware step detector. Constant Value: "android.hardware.sensor.stepdetector"

FEATURE_SE_OMAPI_ESE Added in API level 30 public static final String FEATURE_SE_OMAPI_ESE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Open Mobile API capable eSE-based secure elements. Constant Value: "android.hardware.se.omapi.ese"

FEATURE_SE_OMAPI_SD Added in API level 30 public static final String FEATURE_SE_OMAPI_SD Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Open Mobile API capable SD-based secure elements. Constant Value: "android.hardware.se.omapi.sd"

FEATURE_SE_OMAPI_UICC Added in API level 30 public static final String FEATURE_SE_OMAPI_UICC Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Open Mobile API capable UICC-based secure elements. Constant Value: "android.hardware.se.omapi.uicc"

FEATURE_SIP Added in API level 9 public static final String FEATURE_SIP Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The SIP API is enabled on the device. Constant Value: "android.software.sip"

FEATURE_SIP_VOIP Added in API level 9 public static final String FEATURE_SIP_VOIP Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports SIP-based VOIP. Constant Value: "android.software.sip.voip"

FEATURE_STRONGBOX_KEYSTORE Added in API level 28 public static final String FEATURE_STRONGBOX_KEYSTORE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a StrongBox hardware-backed Keystore. Constant Value: "android.hardware.strongbox_keystore"

FEATURE_TELEPHONY Added in API level 7 public static final String FEATURE_TELEPHONY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a telephony radio with data communication support. Constant Value: "android.hardware.telephony"

FEATURE_TELEPHONY_CDMA Added in API level 7 public static final String FEATURE_TELEPHONY_CDMA Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a CDMA telephony stack. Constant Value: "android.hardware.telephony.cdma"

FEATURE_TELEPHONY_EUICC Added in API level 28 public static final String FEATURE_TELEPHONY_EUICC Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports embedded subscriptions on eUICCs. Constant Value: "android.hardware.telephony.euicc"

FEATURE_TELEPHONY_GSM Added in API level 7 public static final String FEATURE_TELEPHONY_GSM Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a GSM telephony stack. Constant Value: "android.hardware.telephony.gsm"

FEATURE_TELEPHONY_IMS Added in API level 29 public static final String FEATURE_TELEPHONY_IMS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports attaching to IMS implementations using the ImsService API in telephony. Constant Value: "android.hardware.telephony.ims"

FEATURE_TELEPHONY_MBMS Added in API level 28 public static final String FEATURE_TELEPHONY_MBMS Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports cell-broadcast reception using the MBMS APIs. Constant Value: "android.hardware.telephony.mbms"

FEATURE_TELEVISION

Deprecated in Added in API level 16 Deprecated in API level 21 public static final String FEATURE_TELEVISION This constant was deprecated in API level 21.

use FEATURE_LEANBACK instead. Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : This is a device dedicated to showing UI on a television. Television here is defined to be a typical living room television experience: displayed on a big screen, where the user is sitting far away from it, and the dominant form of input will be something like a DPAD, not through touch or mouse. Constant Value: "android.hardware.type.television"

FEATURE_TOUCHSCREEN Added in API level 8 public static final String FEATURE_TOUCHSCREEN Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's display has a touch screen. Constant Value: "android.hardware.touchscreen"

FEATURE_TOUCHSCREEN_MULTITOUCH Added in API level 7 public static final String FEATURE_TOUCHSCREEN_MULTITOUCH Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's touch screen supports multitouch sufficient for basic two-finger gesture detection. Constant Value: "android.hardware.touchscreen.multitouch"

FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT Added in API level 8 public static final String FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's touch screen is capable of tracking two or more fingers fully independently. Constant Value: "android.hardware.touchscreen.multitouch.distinct"

FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND Added in API level 9 public static final String FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device's touch screen is capable of tracking a full hand of fingers fully independently -- that is, 5 or more simultaneous independent pointers. Constant Value: "android.hardware.touchscreen.multitouch.jazzhand"

FEATURE_USB_ACCESSORY Added in API level 12 public static final String FEATURE_USB_ACCESSORY Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports connecting to USB accessories. Constant Value: "android.hardware.usb.accessory"

FEATURE_USB_HOST Added in API level 12 public static final String FEATURE_USB_HOST Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports connecting to USB devices as the USB host. Constant Value: "android.hardware.usb.host"

FEATURE_VERIFIED_BOOT Added in API level 21 public static final String FEATURE_VERIFIED_BOOT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports verified boot. Constant Value: "android.software.verified_boot"

FEATURE_VR_HEADTRACKING Added in API level 26 public static final String FEATURE_VR_HEADTRACKING Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device implements headtracking suitable for a VR device. Constant Value: "android.hardware.vr.headtracking"

FEATURE_VR_MODE

Deprecated in Added in API level 24 Deprecated in API level 28 public static final String FEATURE_VR_MODE This constant was deprecated in API level 28.

use FEATURE_VR_MODE_HIGH_PERFORMANCE instead. Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device implements an optimized mode for virtual reality (VR) applications that handles stereoscopic rendering of notifications, and disables most monocular system UI components while a VR application has user focus. Devices declaring this feature must include an application implementing a VrListenerService that can be targeted by VR applications via Activity.setVrModeEnabled(boolean, ComponentName) . Constant Value: "android.software.vr.mode"

FEATURE_VR_MODE_HIGH_PERFORMANCE Added in API level 24 public static final String FEATURE_VR_MODE_HIGH_PERFORMANCE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device implements an optimized mode for virtual reality (VR) applications that handles stereoscopic rendering of notifications, disables most monocular system UI components while a VR application has user focus and meets extra CDD requirements to provide a high-quality VR experience. Devices declaring this feature must include an application implementing a VrListenerService that can be targeted by VR applications via Activity.setVrModeEnabled(boolean, ComponentName) . and must meet CDD requirements to provide a high-quality VR experience. Constant Value: "android.hardware.vr.high_performance"

FEATURE_VULKAN_DEQP_LEVEL Added in API level 30 public static final String FEATURE_VULKAN_DEQP_LEVEL Feature for getSystemAvailableFeatures() and hasSystemFeature(java.lang.String, int) : If this feature is supported, the feature version specifies a date such that the device is known to pass the Vulkan dEQP test suite associated with that date. The date is encoded as follows: Year in bits 31-16

Month in bits 15-8

Day in bits 7-0 Example: 2019-03-01 is encoded as 0x07E30301, and would indicate that the device passes the Vulkan dEQP test suite version that was current on 2019-03-01. Constant Value: "android.software.vulkan.deqp.level"

FEATURE_VULKAN_HARDWARE_COMPUTE Added in API level 26 public static final String FEATURE_VULKAN_HARDWARE_COMPUTE Feature for getSystemAvailableFeatures() and hasSystemFeature(java.lang.String, int) : If this feature is supported, the Vulkan implementation on this device is hardware accelerated, and the Vulkan native API will enumerate at least one VkPhysicalDevice , and the feature version will indicate what level of optional compute features that device supports beyond the Vulkan 1.0 requirements. Compute level 0 indicates: The VK_KHR_variable_pointers extension and VkPhysicalDeviceVariablePointerFeaturesKHR::variablePointers feature are supported.

extension and feature are supported. VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers is at least 16. Constant Value: "android.hardware.vulkan.compute"

FEATURE_VULKAN_HARDWARE_LEVEL Added in API level 24 public static final String FEATURE_VULKAN_HARDWARE_LEVEL Feature for getSystemAvailableFeatures() and hasSystemFeature(java.lang.String, int) : If this feature is supported, the Vulkan implementation on this device is hardware accelerated, and the Vulkan native API will enumerate at least one VkPhysicalDevice , and the feature version will indicate what level of optional hardware features limits it supports. Level 0 includes the base Vulkan requirements as well as: VkPhysicalDeviceFeatures::textureCompressionETC2 Level 1 additionally includes: VkPhysicalDeviceFeatures::fullDrawIndexUint32

VkPhysicalDeviceFeatures::imageCubeArray

VkPhysicalDeviceFeatures::independentBlend

VkPhysicalDeviceFeatures::geometryShader

VkPhysicalDeviceFeatures::tessellationShader

VkPhysicalDeviceFeatures::sampleRateShading

VkPhysicalDeviceFeatures::textureCompressionASTC_LDR

VkPhysicalDeviceFeatures::fragmentStoresAndAtomics

VkPhysicalDeviceFeatures::shaderImageGatherExtended

VkPhysicalDeviceFeatures::shaderUniformBufferArrayDynamicIndexing

VkPhysicalDeviceFeatures::shaderSampledImageArrayDynamicIndexing Constant Value: "android.hardware.vulkan.level"

FEATURE_VULKAN_HARDWARE_VERSION Added in API level 24 public static final String FEATURE_VULKAN_HARDWARE_VERSION Feature for getSystemAvailableFeatures() and hasSystemFeature(java.lang.String, int) : If this feature is supported, the Vulkan implementation on this device is hardware accelerated, and the feature version will indicate the highest VkPhysicalDeviceProperties::apiVersion supported by the physical devices that support the hardware level indicated by FEATURE_VULKAN_HARDWARE_LEVEL . The feature version uses the same encoding as Vulkan version numbers: Major version number in bits 31-22

Minor version number in bits 21-12

Patch version number in bits 11-0 A version of 1.1.0 or higher also indicates: The VK_ANDROID_external_memory_android_hardware_buffer extension is supported.

extension is supported. SYNC_FD external semaphore and fence handles are supported.

external semaphore and fence handles are supported. VkPhysicalDeviceSamplerYcbcrConversionFeatures::samplerYcbcrConversion is supported. A subset of devices that support Vulkan 1.1 do so via software emulation. For more information, see A version of 1.1.0 or higher also indicates:A subset of devices that support Vulkan 1.1 do so via software emulation. For more information, see Vulkan Design Guidelines Constant Value: "android.hardware.vulkan.version"

FEATURE_WATCH Added in API level 20 public static final String FEATURE_WATCH Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : This is a device dedicated to showing UI on a watch. A watch here is defined to be a device worn on the body, perhaps on the wrist. The user is very close when interacting with the device. Constant Value: "android.hardware.type.watch"

FEATURE_WEBVIEW Added in API level 20 public static final String FEATURE_WEBVIEW Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device has a full implementation of the android.webkit.* APIs. Devices lacking this feature will not have a functioning WebView implementation. Constant Value: "android.software.webview"

FEATURE_WIFI Added in API level 8 public static final String FEATURE_WIFI Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports WiFi (802.11) networking. Constant Value: "android.hardware.wifi"

FEATURE_WIFI_AWARE Added in API level 26 public static final String FEATURE_WIFI_AWARE Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Wi-Fi Aware. Constant Value: "android.hardware.wifi.aware"

FEATURE_WIFI_DIRECT Added in API level 14 public static final String FEATURE_WIFI_DIRECT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Wi-Fi Direct networking. Constant Value: "android.hardware.wifi.direct"

FEATURE_WIFI_PASSPOINT Added in API level 27 public static final String FEATURE_WIFI_PASSPOINT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Wi-Fi Passpoint and all Passpoint related APIs in WifiManager are supported. Refer to WifiManager#addOrUpdatePasspointConfiguration for more info. Constant Value: "android.hardware.wifi.passpoint"

FEATURE_WIFI_RTT Added in API level 28 public static final String FEATURE_WIFI_RTT Feature for getSystemAvailableFeatures() and hasSystemFeature(String) : The device supports Wi-Fi RTT (IEEE 802.11mc). Constant Value: "android.hardware.wifi.rtt"

FLAG_PERMISSION_WHITELIST_INSTALLER Added in API level 29 public static final int FLAG_PERMISSION_WHITELIST_INSTALLER Permission whitelist flag: permissions whitelisted by the installer. Permissions can also be whitelisted by the system or on upgrade. Constant Value: 2 (0x00000002)

FLAG_PERMISSION_WHITELIST_SYSTEM Added in API level 29 public static final int FLAG_PERMISSION_WHITELIST_SYSTEM Permission whitelist flag: permissions whitelisted by the system. Permissions can also be whitelisted by the installer or on upgrade. Constant Value: 1 (0x00000001)

FLAG_PERMISSION_WHITELIST_UPGRADE Added in API level 29 public static final int FLAG_PERMISSION_WHITELIST_UPGRADE Permission whitelist flag: permissions whitelisted by the system when upgrading from an OS version where the permission was not restricted to an OS version where the permission is restricted. Permissions can also be whitelisted by the installer or the system. Constant Value: 4 (0x00000004)

GET_ACTIVITIES Added in API level 1 public static final int GET_ACTIVITIES PackageInfo flag: return information about activities in the package in PackageInfo#activities . Constant Value: 1 (0x00000001)

GET_CONFIGURATIONS Added in API level 3 public static final int GET_CONFIGURATIONS PackageInfo flag: return information about hardware preferences in PackageInfo#configPreferences , and requested features in PackageInfo#reqFeatures and PackageInfo#featureGroups . Constant Value: 16384 (0x00004000)

GET_DISABLED_COMPONENTS

Deprecated in Added in API level 1 Deprecated in API level 24 public static final int GET_DISABLED_COMPONENTS This constant was deprecated in API level 24.

replaced with MATCH_DISABLED_COMPONENTS Constant Value: 512 (0x00000200)

GET_DISABLED_UNTIL_USED_COMPONENTS

Deprecated in Added in API level 18 Deprecated in API level 24 public static final int GET_DISABLED_UNTIL_USED_COMPONENTS This constant was deprecated in API level 24.

replaced with MATCH_DISABLED_UNTIL_USED_COMPONENTS . Constant Value: 32768 (0x00008000)

GET_GIDS Added in API level 1 public static final int GET_GIDS PackageInfo flag: return the PackageInfo#gids that are associated with an application. This applies for any API returning a PackageInfo class, either directly or nested inside of another. Constant Value: 256 (0x00000100)

GET_INSTRUMENTATION Added in API level 1 public static final int GET_INSTRUMENTATION PackageInfo flag: return information about instrumentation in the package in PackageInfo#instrumentation . Constant Value: 16 (0x00000010)

GET_INTENT_FILTERS Added in API level 1 public static final int GET_INTENT_FILTERS PackageInfo flag: return information about the intent filters supported by the activity. Constant Value: 32 (0x00000020)

GET_META_DATA Added in API level 1 public static final int GET_META_DATA ComponentInfo flag: return the ComponentInfo#metaData data Bundle s that are associated with a component. This applies for any API returning a ComponentInfo subclass. Constant Value: 128 (0x00000080)

GET_PERMISSIONS Added in API level 1 public static final int GET_PERMISSIONS PackageInfo flag: return information about permissions in the package in PackageInfo#permissions . Constant Value: 4096 (0x00001000)

GET_PROVIDERS Added in API level 1 public static final int GET_PROVIDERS PackageInfo flag: return information about content providers in the package in PackageInfo#providers . Constant Value: 8 (0x00000008)

GET_RECEIVERS Added in API level 1 public static final int GET_RECEIVERS PackageInfo flag: return information about intent receivers in the package in PackageInfo#receivers . Constant Value: 2 (0x00000002)

GET_RESOLVED_FILTER Added in API level 1 public static final int GET_RESOLVED_FILTER ResolveInfo flag: return the IntentFilter that was matched for a particular ResolveInfo in ResolveInfo#filter . Constant Value: 64 (0x00000040)

GET_SERVICES Added in API level 1 public static final int GET_SERVICES PackageInfo flag: return information about services in the package in PackageInfo#services . Constant Value: 4 (0x00000004)

GET_SHARED_LIBRARY_FILES Added in API level 1 public static final int GET_SHARED_LIBRARY_FILES ApplicationInfo flag: return the ApplicationInfo#sharedLibraryFiles that are associated with an application. This applies for any API returning an ApplicationInfo class, either directly or nested inside of another. Constant Value: 1024 (0x00000400)

GET_SIGNATURES

Deprecated in Added in API level 1 Deprecated in API level 28 public static final int GET_SIGNATURES This constant was deprecated in API level 28.

use GET_SIGNING_CERTIFICATES instead PackageInfo flag: return information about the signatures included in the package. Constant Value: 64 (0x00000040)

GET_SIGNING_CERTIFICATES Added in API level 28 public static final int GET_SIGNING_CERTIFICATES PackageInfo flag: return the signing certificates associated with this package. Each entry is a signing certificate that the package has proven it is authorized to use, usually a past signing certificate from which it has rotated. Constant Value: 134217728 (0x08000000)

GET_UNINSTALLED_PACKAGES

Deprecated in Added in API level 3 Deprecated in API level 24 public static final int GET_UNINSTALLED_PACKAGES This constant was deprecated in API level 24.

replaced with MATCH_UNINSTALLED_PACKAGES Constant Value: 8192 (0x00002000)

GET_URI_PERMISSION_PATTERNS Added in API level 1 public static final int GET_URI_PERMISSION_PATTERNS ProviderInfo flag: return the ProviderInfo#uriPermissionPatterns that are associated with a content provider. This applies for any API returning a ProviderInfo class, either directly or nested inside of another. Constant Value: 2048 (0x00000800)

INSTALL_REASON_DEVICE_RESTORE Added in API level 26 public static final int INSTALL_REASON_DEVICE_RESTORE Code indicating that this package was installed as part of restoring from another device. Constant Value: 2 (0x00000002)

INSTALL_REASON_DEVICE_SETUP Added in API level 26 public static final int INSTALL_REASON_DEVICE_SETUP Code indicating that this package was installed as part of device setup. Constant Value: 3 (0x00000003)

INSTALL_REASON_POLICY Added in API level 26 public static final int INSTALL_REASON_POLICY Code indicating that this package was installed due to enterprise policy. Constant Value: 1 (0x00000001)

INSTALL_REASON_UNKNOWN Added in API level 26 public static final int INSTALL_REASON_UNKNOWN Code indicating that the reason for installing this package is unknown. Constant Value: 0 (0x00000000)

INSTALL_REASON_USER Added in API level 26 public static final int INSTALL_REASON_USER Code indicating that the package installation was initiated by the user. Constant Value: 4 (0x00000004)

MATCH_ALL Added in API level 23 public static final int MATCH_ALL Querying flag: if set and if the platform is doing any filtering of the results, then the filtering will not happen. This is a synonym for saying that all results should be returned. This flag should be used with extreme care. Constant Value: 131072 (0x00020000)

MATCH_APEX Added in API level 29 public static final int MATCH_APEX PackageInfo flag: include APEX packages that are currently installed. In APEX terminology, this corresponds to packages that are currently active, i.e. mounted and available to other processes of the OS. In particular, this flag alone will not match APEX files that are staged for activation at next reboot. Constant Value: 1073741824 (0x40000000)

MATCH_DEFAULT_ONLY Added in API level 1 public static final int MATCH_DEFAULT_ONLY Resolution and querying flag: if set, only filters that support the Intent.CATEGORY_DEFAULT will be considered for matching. This is a synonym for including the CATEGORY_DEFAULT in your supplied Intent. Constant Value: 65536 (0x00010000)

MATCH_DIRECT_BOOT_AUTO Added in API level 29 public static final int MATCH_DIRECT_BOOT_AUTO Querying flag: automatically match components based on their Direct Boot awareness and the current user state. Since the default behavior is to automatically apply the current user state, this is effectively a sentinel value that doesn't change the output of any queries based on its presence or absence. Instead, this value can be useful in conjunction with StrictMode.VmPolicy.Builder.detectImplicitDirectBoot() to detect when a caller is relying on implicit automatic matching, instead of confirming the explicit behavior they want, using a combination of these flags: MATCH_DIRECT_BOOT_AWARE

MATCH_DIRECT_BOOT_UNAWARE

MATCH_DIRECT_BOOT_AUTO Constant Value: 268435456 (0x10000000)

MATCH_DIRECT_BOOT_AWARE Added in API level 24 public static final int MATCH_DIRECT_BOOT_AWARE Querying flag: match components which are direct boot aware in the returned info, regardless of the current user state. When neither MATCH_DIRECT_BOOT_AWARE nor MATCH_DIRECT_BOOT_UNAWARE are specified, the default behavior is to match only runnable components based on the user state. For example, when a user is started but credentials have not been presented yet, the user is running "locked" and only MATCH_DIRECT_BOOT_AWARE components are returned. Once the user credentials have been presented, the user is running "unlocked" and both MATCH_DIRECT_BOOT_AWARE and MATCH_DIRECT_BOOT_UNAWARE components are returned. See also: UserManager.isUserUnlocked() Constant Value: 524288 (0x00080000)

MATCH_DIRECT_BOOT_UNAWARE Added in API level 24 public static final int MATCH_DIRECT_BOOT_UNAWARE Querying flag: match components which are direct boot unaware in the returned info, regardless of the current user state. When neither MATCH_DIRECT_BOOT_AWARE nor MATCH_DIRECT_BOOT_UNAWARE are specified, the default behavior is to match only runnable components based on the user state. For example, when a user is started but credentials have not been presented yet, the user is running "locked" and only MATCH_DIRECT_BOOT_AWARE components are returned. Once the user credentials have been presented, the user is running "unlocked" and both MATCH_DIRECT_BOOT_AWARE and MATCH_DIRECT_BOOT_UNAWARE components are returned. See also: UserManager.isUserUnlocked() Constant Value: 262144 (0x00040000)

MATCH_DISABLED_COMPONENTS Added in API level 24 public static final int MATCH_DISABLED_COMPONENTS PackageInfo flag: include disabled components in the returned info. Constant Value: 512 (0x00000200)

MATCH_DISABLED_UNTIL_USED_COMPONENTS Added in API level 24 public static final int MATCH_DISABLED_UNTIL_USED_COMPONENTS PackageInfo flag: include disabled components which are in that state only because of COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED in the returned info. Note that if you set this flag, applications that are in this disabled state will be reported as enabled. Constant Value: 32768 (0x00008000)

MATCH_SYSTEM_ONLY Added in API level 24 public static final int MATCH_SYSTEM_ONLY Querying flag: include only components from applications that are marked with ApplicationInfo#FLAG_SYSTEM . Constant Value: 1048576 (0x00100000)

MATCH_UNINSTALLED_PACKAGES Added in API level 24 public static final int MATCH_UNINSTALLED_PACKAGES Flag parameter to retrieve some information about all applications (even uninstalled ones) which have data directories. This state could have resulted if applications have been deleted with flag DELETE_KEEP_DATA with a possibility of being replaced or reinstalled in future. Note: this flag may cause less information about currently installed applications to be returned. Note: use of this flag requires the android.permission.QUERY_ALL_PACKAGES permission to see uninstalled packages. Constant Value: 8192 (0x00002000)

MAXIMUM_VERIFICATION_TIMEOUT Added in API level 17 public static final long MAXIMUM_VERIFICATION_TIMEOUT Can be used as the millisecondsToDelay argument for PackageManager#extendVerificationTimeout . This is the maximum time PackageManager waits for the verification agent to return (in milliseconds). Constant Value: 3600000 (0x000000000036ee80)

PERMISSION_DENIED Added in API level 1 public static final int PERMISSION_DENIED Permission check result: this is returned by checkPermission(String, String) if the permission has not been granted to the given package. Constant Value: -1 (0xffffffff)

PERMISSION_GRANTED Added in API level 1 public static final int PERMISSION_GRANTED Permission check result: this is returned by checkPermission(String, String) if the permission has been granted to the given package. Constant Value: 0 (0x00000000)

SIGNATURE_FIRST_NOT_SIGNED Added in API level 1 public static final int SIGNATURE_FIRST_NOT_SIGNED Signature check result: this is returned by checkSignatures(int, int) if the first package is not signed but the second is. Constant Value: -1 (0xffffffff)

SIGNATURE_MATCH Added in API level 1 public static final int SIGNATURE_MATCH Signature check result: this is returned by checkSignatures(int, int) if all signatures on the two packages match. Constant Value: 0 (0x00000000)

SIGNATURE_NEITHER_SIGNED Added in API level 1 public static final int SIGNATURE_NEITHER_SIGNED Signature check result: this is returned by checkSignatures(int, int) if neither of the two packages is signed. Constant Value: 1 (0x00000001)

SIGNATURE_NO_MATCH Added in API level 1 public static final int SIGNATURE_NO_MATCH Signature check result: this is returned by checkSignatures(int, int) if not all signatures on both packages match. Constant Value: -3 (0xfffffffd)

SIGNATURE_SECOND_NOT_SIGNED Added in API level 1 public static final int SIGNATURE_SECOND_NOT_SIGNED Signature check result: this is returned by checkSignatures(int, int) if the second package is not signed but the first is. Constant Value: -2 (0xfffffffe)

SIGNATURE_UNKNOWN_PACKAGE Added in API level 1 public static final int SIGNATURE_UNKNOWN_PACKAGE Signature check result: this is returned by checkSignatures(int, int) if either of the packages are not valid. Constant Value: -4 (0xfffffffc)

SYNCHRONOUS Added in API level 30 public static final int SYNCHRONOUS Flag parameter for setComponentEnabledSetting(android.content.ComponentName, int, int) to indicate that the given user's package restrictions state will be serialised to disk after the component state has been updated. Note that this is synchronous disk access, so calls using this flag should be run on a background thread. Constant Value: 2 (0x00000002)

VERIFICATION_ALLOW Added in API level 14 public static final int VERIFICATION_ALLOW Used as the verificationCode argument for PackageManager#verifyPendingInstall to indicate that the calling package verifier allows the installation to proceed. Constant Value: 1 (0x00000001)

VERIFICATION_REJECT Added in API level 14 public static final int VERIFICATION_REJECT Used as the verificationCode argument for PackageManager#verifyPendingInstall to indicate the calling package verifier does not vote to allow the installation to proceed. Constant Value: -1 (0xffffffff)

VERSION_CODE_HIGHEST Added in API level 26 public static final int VERSION_CODE_HIGHEST Constant for specifying the highest installed package version code. Constant Value: -1 (0xffffffff)

Public constructors

PackageManager public PackageManager ()

Public methods

addPackageToPreferred

Deprecated in Added in API level 1 Deprecated in API level 15 public abstract void addPackageToPreferred (String packageName) This method was deprecated in API level 15.

This function no longer does anything. It is the platform's responsibility to assign preferred activities and this cannot be modified directly. To determine the activities resolved by the platform, use resolveActivity(Intent, int) or queryIntentActivities(Intent, int) . To configure an app to be responsible for a particular role and to check current role holders, see RoleManager . Parameters packageName String : This value cannot be null .

addPermission Added in API level 1 public abstract boolean addPermission (PermissionInfo info) Add a new dynamic permission to the system. For this to work, your package must have defined a permission tree through the <permission-tree> tag in its manifest. A package can only add permissions to trees that were defined by either its own package or another with the same user id; a permission is in a tree if it matches the name of the permission tree + ".": for example, "com.foo.bar" is a member of the permission tree "com.foo". It is good to make your permission tree name descriptive, because you are taking possession of that entire set of permission names. Thus, it must be under a domain you control, with a suffix that will not match any normal permissions that may be declared in any applications that are part of that domain. New permissions must be added before any .apks are installed that use those permissions. Permissions you add through this method are remembered across reboots of the device. If the given permission already exists, the info you supply here will be used to update it. Parameters info PermissionInfo : Description of the permission to be added. This value cannot be null . Returns boolean Returns true if a new permission was created, false if an existing one was updated. Throws SecurityException if you are not allowed to add the given permission name. See also: removePermission(String)

addPermissionAsync Added in API level 8 public abstract boolean addPermissionAsync (PermissionInfo info) Like addPermission(android.content.pm.PermissionInfo) but asynchronously persists the package manager state after returning from the call, allowing it to return quicker and batch a series of adds at the expense of no guarantee the added permission will be retained if the device is rebooted before it is written. Parameters info PermissionInfo : This value cannot be null . Returns boolean

addPreferredActivity

Deprecated in Added in API level 1 Deprecated in API level 15 public abstract void addPreferredActivity (IntentFilter filter, int match, ComponentName[] set, ComponentName activity) This method was deprecated in API level 15.

This function no longer does anything. It is the platform's responsibility to assign preferred activities and this cannot be modified directly. To determine the activities resolved by the platform, use resolveActivity(Intent, int) or queryIntentActivities(Intent, int) . To configure an app to be responsible for a particular role and to check current role holders, see RoleManager . Add a new preferred activity mapping to the system. This will be used to automatically select the given activity component when Context#startActivity(Intent) finds multiple matching activities and also matches the given filter. Parameters filter IntentFilter : The set of intents under which this activity will be made preferred. This value cannot be null . match int : The IntentFilter match category that this preference applies to. set ComponentName : The set of activities that the user was picking from when this preference was made. This value may be null . activity ComponentName : The component name of the activity that is to be preferred. This value cannot be null .

addWhitelistedRestrictedPermission Added in API level 29 public boolean addWhitelistedRestrictedPermission (String packageName, String permName, int whitelistFlags) Adds a whitelisted restricted permission for an app. Permissions can be hard restricted which means that the app cannot hold them or soft restricted where the app can hold the permission but in a weaker form. Whether a permission is PermissionInfo#FLAG_HARD_RESTRICTED or PermissionInfo#FLAG_SOFT_RESTRICTED depends on the permission declaration. Whitelisting a hard restricted permission allows for the to hold that permission and whitelisting a soft restricted permission allows the app to hold the permission in its full, unrestricted form. There are three whitelists: one for cases where the system permission policy whitelists a permission This list corresponds to the FLAG_PERMISSION_WHITELIST_SYSTEM flag. Can only be modified by pre-installed holders of a dedicated permission. one for cases where the system whitelists the permission when upgrading from an OS version in which the permission was not restricted to an OS version in which the permission is restricted. This list corresponds to the FLAG_PERMISSION_WHITELIST_UPGRADE flag. Can be modified by pre-installed holders of a dedicated permission. The installer on record can only remove permissions from this whitelist. one for cases where the installer of the package whitelists a permission. This list corresponds to the FLAG_PERMISSION_WHITELIST_INSTALLER flag. Can be modified by pre-installed holders of a dedicated permission or the installer on record. You need to specify the whitelists for which to set the whitelisted permissions which will clear the previous whitelisted permissions and replace them with the provided ones. Parameters packageName String : The app for which to get whitelisted permissions. This value cannot be null . permName String : The whitelisted permission to add. This value cannot be null . whitelistFlags int : The whitelists to which to add. Passing multiple flags updates all specified whitelists. Value is either 0 or a combination of FLAG_PERMISSION_WHITELIST_SYSTEM , FLAG_PERMISSION_WHITELIST_INSTALLER , and FLAG_PERMISSION_WHITELIST_UPGRADE Returns boolean Whether the permission was added to the whitelist. Throws SecurityException if you try to modify a whitelist that you have no access to. See also: getWhitelistedRestrictedPermissions(String, int)

removeWhitelistedRestrictedPermission(String, String, int)

FLAG_PERMISSION_WHITELIST_SYSTEM

FLAG_PERMISSION_WHITELIST_UPGRADE

FLAG_PERMISSION_WHITELIST_INSTALLER

canRequestPackageInstalls Added in API level 26 public abstract boolean canRequestPackageInstalls () Checks whether the calling package is allowed to request package installs through package installer. Apps are encouraged to call this API before launching the package installer via intent Intent.ACTION_INSTALL_PACKAGE . Starting from Android O, the user can explicitly choose what external sources they trust to install apps on the device. If this API returns false, the install request will be blocked by the package installer and a dialog will be shown to the user with an option to launch settings to change their preference. An application must target Android O or higher and declare permission Manifest.permission.REQUEST_INSTALL_PACKAGES in order to use this API. Returns boolean true if the calling package is trusted by the user to request install packages on the device, false otherwise. See also: Intent.ACTION_INSTALL_PACKAGE

Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES

canonicalToCurrentPackageNames Added in API level 8 public abstract String[] canonicalToCurrentPackageNames (String[] packageNames) Map from a packages canonical name to the current name in use on the device. Parameters packageNames String : Array of new names to be mapped. This value cannot be null . Returns String[] Returns an array of the same size as the original, containing the current name for each package.

checkPermission Added in API level 1 public abstract int checkPermission (String permName, String packageName) Check whether a particular package has been granted a particular permission. Parameters permName String : The name of the permission you are checking for. This value cannot be null . packageName String : The name of the package you are checking against. This value cannot be null . Returns int If the package has the permission, PERMISSION_GRANTED is returned. If it does not have the permission, PERMISSION_DENIED is returned. Value is PERMISSION_GRANTED , or PERMISSION_DENIED See also: PERMISSION_GRANTED

PERMISSION_DENIED

checkSignatures Added in API level 1 public abstract int checkSignatures (String packageName1, String packageName2) Compare the signatures of two packages to determine if the same signature appears in both of them. If they do contain the same signature, then they are allowed special privileges when working with each other: they can share the same user-id, run instrumentation against each other, etc. Parameters packageName1 String : First package name whose signature will be compared. This value cannot be null . packageName2 String : Second package name whose signature will be compared. This value cannot be null . Returns int Returns an integer indicating whether all signatures on the two packages match. The value is >= 0 ( SIGNATURE_MATCH ) if all signatures match or < 0 if there is not a match ( SIGNATURE_NO_MATCH or SIGNATURE_UNKNOWN_PACKAGE ). Value is SIGNATURE_MATCH , SIGNATURE_NEITHER_SIGNED , SIGNATURE_FIRST_NOT_SIGNED , SIGNATURE_SECOND_NOT_SIGNED , SIGNATURE_NO_MATCH , or SIGNATURE_UNKNOWN_PACKAGE See also: checkSignatures(int, int)

checkSignatures Added in API level 5 public abstract int checkSignatures (int uid1, int uid2) Like checkSignatures(java.lang.String, java.lang.String) , but takes UIDs of the two packages to be checked. This can be useful, for example, when doing the check in an IPC, where the UID is the only identity available. It is functionally identical to determining the package associated with the UIDs and checking their signatures. Parameters uid1 int : First UID whose signature will be compared. uid2 int : Second UID whose signature will be compared. Returns int Returns an integer indicating whether all signatures on the two packages match. The value is >= 0 ( SIGNATURE_MATCH ) if all signatures match or < 0 if there is not a match ( SIGNATURE_NO_MATCH or SIGNATURE_UNKNOWN_PACKAGE ). Value is SIGNATURE_MATCH , SIGNATURE_NEITHER_SIGNED , SIGNATURE_FIRST_NOT_SIGNED , SIGNATURE_SECOND_NOT_SIGNED , SIGNATURE_NO_MATCH , or SIGNATURE_UNKNOWN_PACKAGE See also: checkSignatures(String, String)

clearPackagePreferredActivities

Deprecated in Added in API level 1 Deprecated in API level 29 public abstract void clearPackagePreferredActivities (String packageName) This method was deprecated in API level 29.

This function no longer does anything. It is the platform's responsibility to assign preferred activities and this cannot be modified directly. To determine the activities resolved by the platform, use resolveActivity(Intent, int) or queryIntentActivities(Intent, int) . To configure an app to be responsible for a particular role and to check current role holders, see RoleManager . Remove all preferred activity mappings, previously added with addPreferredActivity(IntentFilter, int, ComponentName[], ComponentName) , from the system whose activities are implemented in the given package name. An application can only clear its own package(s). Parameters packageName String : The name of the package whose preferred activity mappings are to be removed. This value cannot be null .

currentToCanonicalPackageNames Added in API level 8 public abstract String[] currentToCanonicalPackageNames (String[] packageNames) Map from the current package names in use on the device to whatever the current canonical name of that package is. Parameters packageNames String : Array of current names to be mapped. This value cannot be null . Returns String[] Returns an array of the same size as the original, containing the canonical name for each package.

extendVerificationTimeout Added in API level 17 public abstract void extendVerificationTimeout (int id, int verificationCodeAtTimeout, long millisecondsToDelay) Allows a package listening to the Intent#ACTION_PACKAGE_NEEDS_VERIFICATION to extend the default timeout for a response and declare what action to perform after the timeout occurs. The response must include the verificationCodeAtTimeout which is one of PackageManager#VERIFICATION_ALLOW or PackageManager#VERIFICATION_REJECT . This method may only be called once per package id. Additional calls will have no effect. Parameters id int : pending package identifier as passed via the PackageManager#EXTRA_VERIFICATION_ID Intent extra. verificationCodeAtTimeout int : either PackageManager#VERIFICATION_ALLOW or PackageManager#VERIFICATION_REJECT . If verificationCodeAtTimeout is neither PackageManager#VERIFICATION_ALLOW or PackageManager#VERIFICATION_REJECT , then verificationCodeAtTimeout will default to PackageManager#VERIFICATION_REJECT . millisecondsToDelay long : the amount of time requested for the timeout. Must be positive and less than PackageManager#MAXIMUM_VERIFICATION_TIMEOUT . If millisecondsToDelay is out of bounds, millisecondsToDelay will be set to the closest in bounds value; namely, 0 or PackageManager#MAXIMUM_VERIFICATION_TIMEOUT . Throws SecurityException if the caller does not have the PACKAGE_VERIFICATION_AGENT permission.

getActivityBanner Added in API level 20 public abstract Drawable getActivityBanner (ComponentName activityName) Retrieve the banner associated with an activity. Given the full name of an activity, retrieves the information about it and calls ComponentInfo#loadIcon to return its banner. If the activity cannot be found, NameNotFoundException is thrown. Parameters activityName ComponentName : Name of the activity whose banner is to be retrieved. This value cannot be null . Returns Drawable Returns the image of the banner, or null if the activity has no banner specified. Throws PackageManager.NameNotFoundException Thrown if the resources for the given activity could not be loaded. See also: getActivityBanner(Intent)

getActivityBanner Added in API level 20 public abstract Drawable getActivityBanner (Intent intent) Retrieve the banner associated with an Intent. If intent.getClassName() is set, this simply returns the result of getActivityBanner(intent.getClassName()). Otherwise it resolves the intent's component and returns the banner associated with the resolved component. If intent.getClassName() cannot be found or the Intent cannot be resolved to a component, NameNotFoundException is thrown. Parameters intent Intent : The intent for which you would like to retrieve a banner. This value cannot be null . Returns Drawable Returns the image of the banner, or null if the activity has no banner specified. Throws PackageManager.NameNotFoundException Thrown if the resources for application matching the given intent could not be loaded. See also: getActivityBanner(ComponentName)

getActivityIcon Added in API level 1 public abstract Drawable getActivityIcon (Intent intent) Retrieve the icon associated with an Intent. If intent.getClassName() is set, this simply returns the result of getActivityIcon(intent.getClassName()). Otherwise it resolves the intent's component and returns the icon associated with the resolved component. If intent.getClassName() cannot be found or the Intent cannot be resolved to a component, NameNotFoundException is thrown. Parameters intent Intent : The intent for which you would like to retrieve an icon. This value cannot be null . Returns Drawable Returns the image of the icon, or the default activity icon if it could not be found. Does not return null. Throws PackageManager.NameNotFoundException Thrown if the resources for application matching the given intent could not be loaded. See also: getActivityIcon(ComponentName)

getActivityIcon Added in API level 1 public abstract Drawable getActivityIcon (ComponentName activityName) Retrieve the icon associated with an activity. Given the full name of an activity, retrieves the information about it and calls ComponentInfo#loadIcon to return its icon. If the activity cannot be found, NameNotFoundException is thrown. Parameters activityName ComponentName : Name of the activity whose icon is to be retrieved. This value cannot be null . Returns Drawable Returns the image of the icon, or the default activity icon if it could not be found. Does not return null. Throws PackageManager.NameNotFoundException Thrown if the resources for the given activity could not be loaded. See also: getActivityIcon(Intent)

getActivityInfo Added in API level 1 public abstract ActivityInfo getActivityInfo (ComponentName component, int flags) Retrieve all of the information we know about a particular activity class. Parameters component ComponentName : The full component name (i.e. com.google.apps.contacts/com.google.apps.contacts. ContactsList) of an Activity class. This value cannot be null . flags int : Additional option flags to modify the data returned. Value is either 0 or a combination of GET_META_DATA , GET_SHARED_LIBRARY_FILES , MATCH_ALL , android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING, MATCH_DEFAULT_ONLY , MATCH_DISABLED_COMPONENTS , MATCH_DISABLED_UNTIL_USED_COMPONENTS , MATCH_DIRECT_BOOT_AUTO , MATCH_DIRECT_BOOT_AWARE , MATCH_DIRECT_BOOT_UNAWARE , MATCH_SYSTEM_ONLY , MATCH_UNINSTALLED_PACKAGES , android.content.pm.PackageManager.MATCH_INSTANT, android.content.pm.PackageManager.MATCH_STATIC_SHARED_LIBRARIES, GET_DISABLED_COMPONENTS , GET_DISABLED_UNTIL_USED_COMPONENTS , and GET_UNINSTALLED_PACKAGES Returns ActivityInfo An ActivityInfo containing information about the activity. This value cannot be null . Throws PackageManager.NameNotFoundException if a package with the given name cannot be found on the system.

getActivityLogo Added in API level 9 public abstract Drawable getActivityLogo (Intent intent) Retrieve the logo associated with an Intent. If intent.getClassName() is set, this simply returns the result of getActivityLogo(intent.getClassName()). Otherwise it resolves the intent's component and returns the logo associated with the resolved component. If intent.getClassName() cannot be found or the Intent cannot be resolved to a component, NameNotFoundException is thrown. Parameters intent Intent : The intent for which you would like to retrieve a logo. This value cannot be null . Returns Drawable Returns the image of the logo, or null if the activity has no logo specified. Throws PackageManager.NameNotFoundException Thrown if the resources for application matching the given intent could not be loaded. See also: getActivityLogo(ComponentName)

getActivityLogo Added in API level 9 public abstract Drawable getActivityLogo (ComponentName activityName) Retrieve the logo associated with an activity. Given the full name of an activity, retrieves the information about it and calls ComponentInfo#loadLogo to return its logo. If the activity cannot be found, NameNotFoundException is thrown. Parameters activityName ComponentName : Name of the activity whose logo is to be retrieved. This value cannot be null . Returns Drawable Returns the image of the logo or null if the activity has no logo specified. Throws PackageManager.NameNotFoundException Thrown if the resources for the given activity could not be loaded. See also: getActivityLogo(Intent)

getAllPermissionGroups Added in API level 1 public abstract List<PermissionGroupInfo> getAllPermissionGroups (int flags) Retrieve all of the known permission groups in the system. Parameters flags int : Additional option flags to modify the data returned. Value is either 0 or GET_META_DATA Returns List<PermissionGroupInfo> Returns a list of PermissionGroupInfo containing information about all of the known permission groups. This value cannot be null .

getApplicationBanner Added in API level 20 public abstract Drawable getApplicationBanner (String packageName) Retrieve the banner associated with an application. Given the name of the application's package, retrieves the information about it and calls getApplicationIcon() to return its banner. If the application cannot be found, NameNotFoundException is thrown. Parameters packageName String : Name of the package whose application banner is to be retrieved. This value cannot be null . Returns Drawable Returns the image of the banner or null if the application has no banner specified. Throws PackageManager.NameNotFoundException Thrown if the resources for the given application could not be loaded. See also: getApplicationBanner(ApplicationInfo)

getApplicationBanner Added in API level 20 public abstract Drawable getApplicationBanner (ApplicationInfo info) Retrieve the banner associated with an application. Parameters info ApplicationInfo : Information about application being queried. This value cannot be null . Returns Drawable Returns the image of the banner or null if the application has no banner specified. See also: getApplicationBanner(String)

getApplicationEnabledSetting Added in API level 1 public abstract int getApplicationEnabledSetting (String packageName) Return the enabled setting for an application. This returns the last value set by setApplicationEnabledSetting(java.lang.String, int, int) ; in most cases this value will be COMPONENT_ENABLED_STATE_DEFAULT since the value originally specified in the manifest has not been modified. Parameters packageName String : The package name of the application to retrieve. This value cannot be null . Returns int Returns the current enabled state for the application. Value is COMPONENT_ENABLED_STATE_DEFAULT , COMPONENT_ENABLED_STATE_ENABLED , COMPONENT_ENABLED_STATE_DISABLED , COMPONENT_ENABLED_STATE_DISABLED_USER , or COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED Throws IllegalArgumentException if the named package does not exist.

getApplicationIcon Added in API level 1 public abstract Drawable getApplicationIcon (ApplicationInfo info) Retrieve the icon associated with an application. If it has not defined an icon, the default app icon is returned. Does not return null. Parameters info ApplicationInfo : Information about application being queried. This value cannot be null . Returns Drawable Returns the image of the icon, or the default application icon if it could not be found. See also: getApplicationIcon(String)

getApplicationIcon Added in API level 1 public abstract Drawable getApplicationIcon (String packageName) Retrieve the icon associated with an application. Given the name of the application's package, retrieves the information about it and calls getApplicationIcon() to return its icon. If the application cannot be found, NameNotFoundException is thrown. Parameters packageName String : Name of the package whose application icon is to be retrieved. This value cannot be null . Returns Drawable Returns the image of the icon, or the default application icon if it could not be found. Does not return null. Throws PackageManager.NameNotFoundException Thrown if the resources for the given application could not be loaded. See also: getApplicationIcon(ApplicationInfo)

getApplicationInfo Added in API level 1 public abstract ApplicationInfo getApplicationInfo (String packageName, int flags) Retrieve all of the information we know about a particular package/application. Parameters packageName String : The full name (i.e. com.google.apps.contacts) of an application. This value cannot be null . flags int : Additional option flags to modify the data returned. Value is either 0 or a combination of GET_META_DATA , GET_SHARED_LIBRARY_FILES , MATCH_UNINSTALLED_PACKAGES , MATCH_SYSTEM_ONLY , android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING, MATCH_DISABLED_COMPONENTS , MATCH_DISABLED_UNTIL_USED_COMPONENTS , android.content.pm.PackageManager.MATCH_INSTANT, android.content.pm.PackageManager.MATCH_STATIC_SHARED_LIBRARIES, GET_DISABLED_UNTIL_USED_COMPONENTS , GET_UNINSTALLED_PACKAGES , android.content.pm.PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, and MATCH_APEX Returns ApplicationInfo An ApplicationInfo containing information about the package. If flag MATCH_UNINSTALLED_PACKAGES is set and if the package is not found in the list of installed applications, the application information is retrieved from the list of uninstalled applications (which includes installed applications as well as applications with data directory i.e. applications which had been deleted with DELETE_KEEP_DATA flag set). This value cannot be null . Throws PackageManager.NameNotFoundException if a package with the given name cannot be found on the system.

getApplicationLabel Added in API level 1 public abstract CharSequence getApplicationLabel (ApplicationInfo info) Return the label to use for this application. Parameters info ApplicationInfo : The ApplicationInfo of the application to get the label of. This value cannot be null . Returns CharSequence Returns a CharSequence containing the label associated with this application, or its name the item does not have a label. This value cannot be null .

getApplicationLogo Added in API level 9 public abstract Drawable getApplicationLogo (String packageName) Retrieve the logo associated with an application. Given the name of the application's package, retrieves the information about it and calls getApplicationLogo() to return its logo. If the application cannot be found, NameNotFoundException is thrown. Parameters packageName String : Name of the package whose application logo is to be retrieved. This value cannot be null . Returns Drawable Returns the image of the logo, or null if no application logo has been specified. Throws PackageManager.NameNotFoundException Thrown if the resources for the given application could not be loaded. See also: getApplicationLogo(ApplicationInfo)

getApplicationLogo Added in API level 9 public abstract Drawable getApplicationLogo (ApplicationInfo info) Retrieve the logo associated with an application. If it has not specified a logo, this method returns null. Parameters info ApplicationInfo : Information about application being queried. This value cannot be null . Returns Drawable Returns the image of the logo, or null if no logo is specified by the application. See also: getApplicationLogo(String)

getBackgroundPermissionOptionLabel Added in API level 30 public CharSequence getBackgroundPermissionOptionLabel () Gets the localized label that corresponds to the option in settings for granting background access. The intended use is for apps to reference this label in its instruction for users to grant a background permission. Returns CharSequence the localized label that corresponds to the settings option for granting background access This value cannot be null .

getChangedPackages Added in API level 26 public abstract ChangedPackages getChangedPackages (int sequenceNumber) Returns the names of the packages that have been changed [eg. added, removed or updated] since the given sequence number. If no packages have been changed, returns null . The sequence number starts at 0 and is reset every boot. Parameters sequenceNumber int : The first sequence number for which to retrieve package changes. Value is 0 or greater Returns ChangedPackages See also: Settings.Global.BOOT_COUNT

getComponentEnabledSetting Added in API level 1 public abstract int getComponentEnabledSetting (ComponentName componentName) Return the enabled setting for a package component (activity, receiver, service, provider). This returns the last value set by setComponentEnabledSetting(android.content.ComponentName, int, int) ; in most cases this value will be COMPONENT_ENABLED_STATE_DEFAULT since the value originally specified in the manifest has not been modified. Parameters componentName ComponentName : The component to retrieve. This value cannot be null . Returns int Returns the current enabled state for the component. Value is COMPONENT_ENABLED_STATE_DEFAULT , COMPONENT_ENABLED_STATE_ENABLED , COMPONENT_ENABLED_STATE_DISABLED , COMPONENT_ENABLED_STATE_DISABLED_USER , or COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED

getDefaultActivityIcon Added in API level 1 public abstract Drawable getDefaultActivityIcon () Return the generic icon for an activity that is used when no specific icon is defined. Returns Drawable Drawable Image of the icon. This value cannot be null .

getDrawable Added in API level 1 public abstract Drawable getDrawable (String packageName, int resid, ApplicationInfo appInfo) Retrieve an image from a package. This is a low-level API used by the various package manager info structures (such as ComponentInfo to implement retrieval of their associated icon. Parameters packageName String : The name of the package that this icon is coming from. Cannot be null. This value cannot be null . resid int : The resource identifier of the desired image. Cannot be 0. appInfo ApplicationInfo : Overall information about packageName . This may be null, in which case the application information will be retrieved for you if needed; if you already have this information around, it can be much more efficient to supply it here. This value may be null . Returns Drawable Returns a Drawable holding the requested image. Returns null if an image could not be found for any reason.

getInstallSourceInfo Added in API level 30 public InstallSourceInfo getInstallSourceInfo (String packageName) Retrieves information about how a package was installed or updated. If the calling application does not hold the INSTALL_PACKAGES permission then the result will always return null from InstallSourceInfo#getOriginatingPackageName() . If the package that requested the install has been uninstalled, then information about it will only be returned from InstallSourceInfo#getInitiatingPackageName() and InstallSourceInfo#getInitiatingPackageSigningInfo() if the calling package is requesting its own install information and is not an instant app. Parameters packageName String : The name of the package to query This value cannot be null . Returns InstallSourceInfo Throws PackageManager.NameNotFoundException if the given package name is not installed

getInstalledApplications Added in API level 1 public abstract List<ApplicationInfo> getInstalledApplications (int flags) Return a List of all application packages that are installed for the current user. If flag GET_UNINSTALLED_PACKAGES has been set, a list of all applications including those deleted with DELETE_KEEP_DATA (partially installed apps with data directory) will be returned. Parameters flags int : Additional option flags to modify the data returned. Value is either 0 or a combination of GET_META_DATA , GET_SHARED_LIBRARY_FILES , MATCH_UNINSTALLED_PACKAGES , MATCH_SYSTEM_ONLY , android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING, MATCH_DISABLED_COMPONENTS , MATCH_DISABLED_UNTIL_USED_COMPONENTS , android.content.pm.PackageManager.MATCH_INSTANT, android.content.pm.PackageManager.MATCH_STATIC_SHARED_LIBRARIES, GET_DISABLED_UNTIL_USED_COMPONENTS , GET_UNINSTALLED_PACKAGES , android.content.pm.PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, and MATCH_APEX Returns List<ApplicationInfo> A List of ApplicationInfo objects, one for each installed application. In the unlikely case there are no installed packages, an empty list is returned. If flag MATCH_UNINSTALLED_PACKAGES is set, the application information is retrieved from the list of uninstalled applications (which includes installed applications as well as applications with data directory i.e. applications which had been deleted with DELETE_KEEP_DATA flag set). This value cannot be null .

getInstalledModules Added in API level 29 public List<ModuleInfo> getInstalledModules (int flags) Return a List of all modules that are installed. Parameters flags int : Additional option flags to modify the data returned. Value is either 0 or MATCH_ALL Returns List<ModuleInfo> A List of ModuleInfo objects, one for each installed module, containing information about the module. In the unlikely case there are no installed modules, an empty list is returned. This value cannot be null .

getInstalledPackages Added in API level 1 public abstract List<PackageInfo> getInstalledPackages (int flags) Return a List of all packages that are installed for the current user. Parameters flags int : Additional option flags to modify the data returned. Value is either 0 or a combination of GET_ACTIVITIES , GET_CONFIGURATIONS , GET_GIDS , GET_INSTRUMENTATION , GET_INTENT_FILTERS , GET_META_DATA , GET_PERMISSIONS , GET_PROVIDERS , GET_RECEIVERS , GET_SERVICES , GET_SHARED_LIBRARY_FILES , GET_SIGNATURES , GET_SIGNING_CERTIFICATES , GET_URI_PERMISSION_PATTERNS , MATCH_UNINSTALLED_PACKAGES , MATCH_DISABLED_COMPONENTS , MATCH_DISABLED_UNTIL_USED_COMPONENTS , MATCH_SYSTEM_ONLY , android.content.pm.PackageManager.MATCH_FACTORY_ONLY, android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING, android.content.pm.PackageManager.MATCH_INSTANT, MATCH_APEX , GET_DISABLED_COMPONENTS , GET_DISABLED_UNTIL_USED_COMPONENTS , GET_UNINSTALLED_PACKAGES , and android.content.pm.PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS Returns List<PackageInfo> A List of PackageInfo objects, one for each installed package, containing information about the package. In the unlikely case there are no installed packages, an empty list is returned. If flag MATCH_UNINSTALLED_PACKAGES is set, the package information is retrieved from the list of uninstalled applications (which includes installed applications as well as applications with data directory i.e. applications which had been deleted with DELETE_KEEP_DATA flag set). This value cannot be null .

getInstallerPackageName

Deprecated in Added in API level 5 Deprecated in API level 30 public abstract String getInstallerPackageName (String packageName) This method was deprecated in API level 30.

use getInstallSourceInfo(java.lang.String) instead Retrieve the package name of the application that installed a package. This identifies which market the package came from. Parameters packageName String : The name of the package to query This value cannot be null . Returns String This value may be null . Throws IllegalArgumentException if the given package name is not installed

getInstantAppCookie Added in API level 26 public abstract byte[] getInstantAppCookie () Gets the instant application cookie for this app. Non instant apps and apps that were instant but were upgraded to normal apps can still access this API. For instant apps this cookie is cached for some time after uninstall while for normal apps the cookie is deleted after the app is uninstalled. The cookie is always present while the app is installed. Returns byte[] The cookie. This value cannot be null . See also: isInstantApp()

isInstantApp(String)

updateInstantAppCookie(byte[])

getInstantAppCookieMaxBytes()

clearInstantAppCookie()

getInstantAppCookieMaxBytes Added in API level 26 public abstract int getInstantAppCookieMaxBytes () Gets the maximum size in bytes of the cookie data an instant app can store on the device. Returns int The max cookie size in bytes. See also: isInstantApp()

isInstantApp(String)

updateInstantAppCookie(byte[])

getInstantAppCookie()

clearInstantAppCookie()

getInstrumentationInfo Added in API level 1 public abstract InstrumentationInfo getInstrumentationInfo (ComponentName className, int flags) Retrieve all of the information we know about a particular instrumentation class. Parameters className ComponentName : The full name (i.e. com.google.apps.contacts.InstrumentList) of an Instrumentation class. This value cannot be null . flags int : Additional option flags to modify the data returned. Value is either 0 or GET_META_DATA Returns InstrumentationInfo An InstrumentationInfo object containing information about the instrumentation. This value cannot be null . Throws PackageManager.NameNotFoundException if a package with the given name cannot be found on the system.

getLaunchIntentForPackage Added in API level 3 public abstract Intent getLaunchIntentForPackage (String packageName) Returns a "good" intent to launch a front-door activity in a package. This is used, for example, to implement an "open" button when browsing through packages. The current implementation looks first for a main activity in the category Intent#CATEGORY_INFO , and next for a main activity in the category Intent#CATEGORY_LAUNCHER . Returns null if neither are found. Parameters packageName String : The name of the package to inspect. This value cannot be null . Returns Intent A fully-qualified Intent that can be used to launch the main activity in the package. Returns null if the package does not contain such an activity, or if packageName is not recognized.

getLeanbackLaunchIntentForPackage Added in API level 21 public abstract Intent getLeanbackLaunchIntentForPackage (String packageName) Return a "good" intent to launch a front-door Leanback activity in a package, for use for example to implement an "open" button when browsing through packages. The current implementation will look for a main activity in the category Intent#CATEGORY_LEANBACK_LAUNCHER , or return null if no main leanback activities are found. Parameters packageName String : The name of the package to inspect. This value cannot be null . Returns Intent Returns either a fully-qualified Intent that can be used to launch the main Leanback activity in the package, or null if the package does not contain such an activity.

getMimeGroup Added in API level 30 public Set<String> getMimeGroup (String mimeGroup) Gets all MIME types contained by MIME group. Libraries should use a reverse-DNS prefix followed by a ':' character and library-specific group name to avoid namespace collisions, e.g. "com.example:myFeature". Parameters mimeGroup String : MIME group to retrieve. This value cannot be null . Returns Set<String> MIME types contained by the MIME group. This value cannot be null . Throws IllegalArgumentException if the MIME group was not declared in the manifest.

getModuleInfo Added in API level 29 public ModuleInfo getModuleInfo (String packageName, int flags) Retrieve information for a particular module. Parameters packageName String : The name of the module. This value cannot be null . flags int : Additional option flags to modify the data returned. Value is either 0 or android.content.pm.PackageManager.MODULE_APEX_NAME Returns ModuleInfo A ModuleInfo object containing information about the module. This value cannot be null . Throws PackageManager.NameNotFoundException if a module with the given name cannot be found on the system.

getNameForUid Added in API level 1 public abstract String getNameForUid (int uid) Retrieve the official name associated with a uid. This name is guaranteed to never change, though it is possible for the underlying uid to be changed. That is, if you are storing information about uids in persistent storage, you should use the string returned by this function instead of the raw uid. Parameters uid int : The uid for which you would like to retrieve a name. Returns String Returns a unique name for the given uid, or null if the uid is not currently assigned.

getPackageGids Added in API level 1 public abstract int[] getPackageGids (String packageName) Return an array of all of the POSIX secondary group IDs that have been assigned to the given package. Note that the same package may have different GIDs under different UserHandle on the same device. Parameters packageName String : The full name 