PackageManager
  public
  
  
  abstract
  class
  PackageManager
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.content.pm.PackageManager | 
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.
 
Note: If your app targets Android 11 (API level 30) or higher, the methods in this class each return a filtered list of apps. Learn more about how to manage package visibility.
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | PackageManager.ApplicationInfoFlagsSpecific flags used for retrieving application info. | 
| 
        
        
        
        
        class | PackageManager.ComponentEnabledSettingThe class containing the enabled setting of a package component. | 
| 
        
        
        
        
        class | PackageManager.ComponentInfoFlagsSpecific flags used for retrieving component info. | 
| 
        
        
        
        
        class | PackageManager.NameNotFoundExceptionThis exception is thrown when a given package, application, or component name cannot be found. | 
| 
        
        
        
        
        interface | PackageManager.OnChecksumsReadyListenerListener that gets notified when checksums are available. | 
| 
        
        
        
        
        class | PackageManager.PackageInfoFlagsSpecific flags used for retrieving package info. | 
| 
        
        
        
        
        class | PackageManager.PropertyA property value set within the manifest. | 
| 
        
        
        
        
        class | PackageManager.ResolveInfoFlagsSpecific flags used for retrieving resolve info. | 
| Constants | |
|---|---|
| int | CERT_INPUT_RAW_X509Certificate input bytes: the input bytes represent an encoded X.509 Certificate which could
 be generated using an  | 
| int | CERT_INPUT_SHA256Certificate input bytes: the input bytes represent the SHA256 output of an encoded X.509 Certificate. | 
| int | COMPONENT_ENABLED_STATE_DEFAULTFlag for  | 
| int | COMPONENT_ENABLED_STATE_DISABLEDFlag for  | 
| int | COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USEDFlag for  | 
| int | COMPONENT_ENABLED_STATE_DISABLED_USERFlag for  | 
| int | COMPONENT_ENABLED_STATE_ENABLEDFlag for  | 
| int | DELETE_ARCHIVEFlag parameter for  | 
| int | DONT_KILL_APPFlag parameter for
  | 
| String | EXTRA_VERIFICATION_IDExtra field name for the ID of a package pending verification. | 
| String | EXTRA_VERIFICATION_RESULTExtra field name for the result of a verification, either
  | 
| String | FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYSFeature for  | 
| String | FEATURE_APP_WIDGETSFeature for  | 
| String | FEATURE_AUDIO_LOW_LATENCYFeature for  | 
| String | FEATURE_AUDIO_OUTPUTFeature for  | 
| String | FEATURE_AUDIO_PROFeature for  | 
| String | FEATURE_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCYFeature for  | 
| String | FEATURE_AUTOFILLFeature for  | 
| String | FEATURE_AUTOMOTIVEFeature for  | 
| String | FEATURE_BACKUPFeature for  | 
| String | FEATURE_BLUETOOTHFeature for  | 
| String | FEATURE_BLUETOOTH_LEFeature for  | 
| String | FEATURE_BLUETOOTH_LE_CHANNEL_SOUNDINGFeature for  | 
| String | FEATURE_CAMERAFeature for  | 
| String | FEATURE_CAMERA_ANYFeature for  | 
| String | FEATURE_CAMERA_ARFeature for  | 
| String | FEATURE_CAMERA_AUTOFOCUSFeature for  | 
| String | FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSINGFeature for  | 
| String | FEATURE_CAMERA_CAPABILITY_MANUAL_SENSORFeature for  | 
| String | FEATURE_CAMERA_CAPABILITY_RAWFeature for  | 
| String | FEATURE_CAMERA_CONCURRENTFeature for  | 
| String | FEATURE_CAMERA_EXTERNALFeature for  | 
| String | FEATURE_CAMERA_FLASHFeature for  | 
| String | FEATURE_CAMERA_FRONTFeature for  | 
| String | FEATURE_CAMERA_LEVEL_FULLFeature for  | 
| String | FEATURE_CANT_SAVE_STATEFeature for  | 
| String | FEATURE_COMPANION_DEVICE_SETUPFeature for  | 
| String | FEATURE_CONNECTION_SERVICE
      This constant was deprecated
      in API level 33.
    use  | 
| String | FEATURE_CONSUMER_IRFeature for  | 
| String | FEATURE_CONTROLSFeature for  | 
| String | FEATURE_CREDENTIALSFeature for  | 
| String | FEATURE_DEVICE_ADMINFeature for  | 
| String | FEATURE_DEVICE_LOCKFeature for  | 
| String | FEATURE_EMBEDDEDFeature for  | 
| String | FEATURE_ETHERNETFeature for  | 
| String | FEATURE_EXPANDED_PICTURE_IN_PICTUREFeature for  | 
| String | FEATURE_FACEFeature for  | 
| String | FEATURE_FAKETOUCHFeature for  | 
| String | FEATURE_FAKETOUCH_MULTITOUCH_DISTINCTFeature for  | 
| String | FEATURE_FAKETOUCH_MULTITOUCH_JAZZHANDFeature for  | 
| String | FEATURE_FINGERPRINTFeature for  | 
| String | FEATURE_FREEFORM_WINDOW_MANAGEMENTFeature for  | 
| String | FEATURE_GAMEPADFeature for  | 
| String | FEATURE_HARDWARE_KEYSTOREFeature for  | 
| String | FEATURE_HIFI_SENSORSFeature for  | 
| String | FEATURE_HOME_SCREENFeature for  | 
| String | FEATURE_IDENTITY_CREDENTIAL_HARDWAREFeature for  | 
| String | FEATURE_IDENTITY_CREDENTIAL_HARDWARE_DIRECT_ACCESSFeature for  | 
| String | FEATURE_INPUT_METHODSFeature for  | 
| String | FEATURE_IPSEC_TUNNELSFeature for  | 
| String | FEATURE_IPSEC_TUNNEL_MIGRATIONFeature for  | 
| String | FEATURE_IRISFeature for  | 
| String | FEATURE_KEYSTORE_APP_ATTEST_KEYFeature for  | 
| String | FEATURE_KEYSTORE_LIMITED_USE_KEYFeature for  | 
| String | FEATURE_KEYSTORE_SINGLE_USE_KEYFeature for  | 
| String | FEATURE_LEANBACKFeature for  | 
| String | FEATURE_LEANBACK_ONLYFeature for  | 
| String | FEATURE_LIVE_TVFeature for  | 
| String | FEATURE_LIVE_WALLPAPERFeature for  | 
| String | FEATURE_LOCATIONFeature for  | 
| String | FEATURE_LOCATION_GPSFeature for  | 
| String | FEATURE_LOCATION_NETWORKFeature for  | 
| String | FEATURE_MANAGED_USERSFeature for  | 
| String | FEATURE_MICROPHONEFeature for  | 
| String | FEATURE_MIDIFeature for  | 
| String | FEATURE_NFCFeature for  | 
| String | FEATURE_NFC_BEAMFeature for  | 
| String | FEATURE_NFC_HOST_CARD_EMULATIONFeature for  | 
| String | FEATURE_NFC_HOST_CARD_EMULATION_NFCFFeature for  | 
| String | FEATURE_NFC_OFF_HOST_CARD_EMULATION_ESEFeature for  | 
| String | FEATURE_NFC_OFF_HOST_CARD_EMULATION_UICCFeature for  | 
| String | FEATURE_OPENGLES_DEQP_LEVELFeature for  | 
| String | FEATURE_OPENGLES_EXTENSION_PACKFeature for  | 
| String | FEATURE_PCFeature for  | 
| String | FEATURE_PICTURE_IN_PICTUREFeature for  | 
| String | FEATURE_PRINTINGFeature for  | 
| String | FEATURE_RAM_LOWFeature for  | 
| String | FEATURE_RAM_NORMALFeature for  | 
| String | FEATURE_SCREEN_LANDSCAPEFeature for  | 
| String | FEATURE_SCREEN_PORTRAITFeature for  | 
| String | FEATURE_SECURELY_REMOVES_USERSFeature for  | 
| String | FEATURE_SECURE_LOCK_SCREENFeature for  | 
| String | FEATURE_SECURITY_MODEL_COMPATIBLEFeature for  | 
| String | FEATURE_SENSOR_ACCELEROMETERFeature for  | 
| String | FEATURE_SENSOR_ACCELEROMETER_LIMITED_AXESFeature for  | 
| String | FEATURE_SENSOR_ACCELEROMETER_LIMITED_AXES_UNCALIBRATEDFeature for  | 
| String | FEATURE_SENSOR_AMBIENT_TEMPERATUREFeature for  | 
| String | FEATURE_SENSOR_BAROMETERFeature for  | 
| String | FEATURE_SENSOR_COMPASSFeature for  | 
| String | FEATURE_SENSOR_DYNAMIC_HEAD_TRACKERFeature for  | 
| String | FEATURE_SENSOR_GYROSCOPEFeature for  | 
| String | FEATURE_SENSOR_GYROSCOPE_LIMITED_AXESFeature for  | 
| String | FEATURE_SENSOR_GYROSCOPE_LIMITED_AXES_UNCALIBRATEDFeature for  | 
| String | FEATURE_SENSOR_HEADINGFeature for  | 
| String | FEATURE_SENSOR_HEART_RATEFeature for  | 
| String | FEATURE_SENSOR_HEART_RATE_ECGFeature for  | 
| String | FEATURE_SENSOR_HINGE_ANGLEFeature for  | 
| String | FEATURE_SENSOR_LIGHTFeature for  | 
| String | FEATURE_SENSOR_PROXIMITYFeature for  | 
| String | FEATURE_SENSOR_RELATIVE_HUMIDITYFeature for  | 
| String | FEATURE_SENSOR_STEP_COUNTERFeature for  | 
| String | FEATURE_SENSOR_STEP_DETECTORFeature for  | 
| String | FEATURE_SE_OMAPI_ESEFeature for  | 
| String | FEATURE_SE_OMAPI_SDFeature for  | 
| String | FEATURE_SE_OMAPI_UICCFeature for  | 
| String | FEATURE_SIPFeature for  | 
| String | FEATURE_SIP_VOIPFeature for  | 
| String | FEATURE_STRONGBOX_KEYSTOREFeature for  | 
| String | FEATURE_TELECOMFeature for  | 
| String | FEATURE_TELEPHONYFeature for  | 
| String | FEATURE_TELEPHONY_CALLINGFeature for  | 
| String | FEATURE_TELEPHONY_CDMAFeature for  | 
| String | FEATURE_TELEPHONY_DATAFeature for  | 
| String | FEATURE_TELEPHONY_EUICCFeature for  | 
| String | FEATURE_TELEPHONY_EUICC_MEPFeature for  | 
| String | FEATURE_TELEPHONY_GSMFeature for  | 
| String | FEATURE_TELEPHONY_IMSFeature for  | 
| String | FEATURE_TELEPHONY_MBMSFeature for  | 
| String | FEATURE_TELEPHONY_MESSAGINGFeature for  | 
| String | FEATURE_TELEPHONY_RADIO_ACCESSFeature for  | 
| String | FEATURE_TELEPHONY_SUBSCRIPTIONFeature for  | 
| String | FEATURE_TELEVISION
      This constant was deprecated
      in API level 21.
    use  | 
| String | FEATURE_THREAD_NETWORKFeature for  | 
| String | FEATURE_TOUCHSCREENFeature for  | 
| String | FEATURE_TOUCHSCREEN_MULTITOUCHFeature for  | 
| String | FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCTFeature for  | 
| String | FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHANDFeature for  | 
| String | FEATURE_USB_ACCESSORYFeature for  | 
| String | FEATURE_USB_HOSTFeature for  | 
| String | FEATURE_UWBFeature for  | 
| String | FEATURE_VERIFIED_BOOTFeature for  | 
| String | FEATURE_VR_HEADTRACKINGFeature for  | 
| String | FEATURE_VR_MODE
      This constant was deprecated
      in API level 28.
    use  | 
| String | FEATURE_VR_MODE_HIGH_PERFORMANCEFeature for  | 
| String | FEATURE_VULKAN_DEQP_LEVELFeature for  | 
| String | FEATURE_VULKAN_HARDWARE_COMPUTEFeature for  | 
| String | FEATURE_VULKAN_HARDWARE_LEVELFeature for  | 
| String | FEATURE_VULKAN_HARDWARE_VERSIONFeature for  | 
| String | FEATURE_WALLET_LOCATION_BASED_SUGGESTIONSFeature for  | 
| String | FEATURE_WATCHFeature for  | 
| String | FEATURE_WEBVIEWFeature for  | 
| String | FEATURE_WIFIFeature for  | 
| String | FEATURE_WIFI_AWAREFeature for  | 
| String | FEATURE_WIFI_DIRECTFeature for  | 
| String | FEATURE_WIFI_PASSPOINTFeature for  | 
| String | FEATURE_WIFI_RTTFeature for  | 
| String | FEATURE_WINDOW_MAGNIFICATIONFeature for  | 
| int | FLAG_PERMISSION_WHITELIST_INSTALLERPermission whitelist flag: permissions whitelisted by the installer. | 
| int | FLAG_PERMISSION_WHITELIST_SYSTEMPermission whitelist flag: permissions whitelisted by the system. | 
| int | FLAG_PERMISSION_WHITELIST_UPGRADEPermission 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. | 
| int | GET_ACTIVITIES
 | 
| int | GET_ATTRIBUTIONS
      This constant was deprecated
      in API level 34.
    Use  | 
| long | GET_ATTRIBUTIONS_LONG
 | 
| int | GET_CONFIGURATIONS
 | 
| int | GET_DISABLED_COMPONENTS
      This constant was deprecated
      in API level 24.
    replaced with  | 
| int | GET_DISABLED_UNTIL_USED_COMPONENTS
      This constant was deprecated
      in API level 24.
    replaced with  | 
| int | GET_GIDS
 | 
| int | GET_INSTRUMENTATION
 | 
| int | GET_INTENT_FILTERS
      This constant was deprecated
      in API level 31.
    The platform does not support getting  | 
| int | GET_META_DATA
 | 
| int | GET_PERMISSIONS
 | 
| int | GET_PROVIDERS
 | 
| int | GET_RECEIVERS
 | 
| int | GET_RESOLVED_FILTER
 | 
| int | GET_SERVICES
 | 
| int | GET_SHARED_LIBRARY_FILES
 | 
| int | GET_SIGNATURES
      This constant was deprecated
      in API level 28.
    use  | 
| int | GET_SIGNING_CERTIFICATES
 | 
| int | GET_UNINSTALLED_PACKAGES
      This constant was deprecated
      in API level 24.
    replaced with  | 
| int | GET_URI_PERMISSION_PATTERNS
 | 
| int | INSTALL_REASON_DEVICE_RESTORECode indicating that this package was installed as part of restoring from another device. | 
| int | INSTALL_REASON_DEVICE_SETUPCode indicating that this package was installed as part of device setup. | 
| int | INSTALL_REASON_POLICYCode indicating that this package was installed due to enterprise policy. | 
| int | INSTALL_REASON_UNKNOWNCode indicating that the reason for installing this package is unknown. | 
| int | INSTALL_REASON_USERCode indicating that the package installation was initiated by the user. | 
| int | INSTALL_SCENARIO_BULKInstallation scenario indicating a bulk operation with the desired result of a fully optimized application. | 
| int | INSTALL_SCENARIO_BULK_SECONDARYInstallation scenario indicating a bulk operation that prioritizes minimal system health impact over application optimization. | 
| int | INSTALL_SCENARIO_DEFAULTA value to indicate the lack of CUJ information, disabling all installation scenario logic. | 
| int | INSTALL_SCENARIO_FASTInstallation scenario providing the fastest "install button to launch" experience possible. | 
| int | MATCH_ALLQuerying flag: if set and if the platform is doing any filtering of the results, then the filtering will not happen. | 
| int | MATCH_APEX
 | 
| long | MATCH_ARCHIVED_PACKAGESFlag parameter to also retrieve some information about archived packages. | 
| int | MATCH_DEFAULT_ONLYResolution and querying flag: if set, only filters that support the
  | 
| int | MATCH_DIRECT_BOOT_AUTOQuerying flag: automatically match components based on their Direct Boot awareness and the current user state. | 
| int | MATCH_DIRECT_BOOT_AWAREQuerying flag: match components which are direct boot aware in the returned info, regardless of the current user state. | 
| int | MATCH_DIRECT_BOOT_UNAWAREQuerying flag: match components which are direct boot unaware in the returned info, regardless of the current user state. | 
| int | MATCH_DISABLED_COMPONENTS
 | 
| int | MATCH_DISABLED_UNTIL_USED_COMPONENTS
 | 
| int | MATCH_SYSTEM_ONLYQuerying flag: include only components from applications that are marked
 with  | 
| int | MATCH_UNINSTALLED_PACKAGESFlag parameter to retrieve some information about all applications (even uninstalled ones) which have data directories. | 
| long | MAXIMUM_VERIFICATION_TIMEOUTCan be used as the  | 
| int | PERMISSION_DENIEDPermission check result: this is returned by  | 
| int | PERMISSION_GRANTEDPermission check result: this is returned by  | 
| String | PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAITApplication level  | 
| String | PROPERTY_MEDIA_CAPABILITIES<application> level  | 
| String | PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES<application> level  | 
| String | PROPERTY_SPECIAL_USE_FGS_SUBTYPE<service> level  | 
| String | PROPERTY_USE_RESTRICTED_BACKUP_MODE<application> level  | 
| int | SIGNATURE_FIRST_NOT_SIGNEDSignature check result: this is returned by  | 
| int | SIGNATURE_MATCHSignature check result: this is returned by  | 
| int | SIGNATURE_NEITHER_SIGNEDSignature check result: this is returned by  | 
| int | SIGNATURE_NO_MATCHSignature check result: this is returned by  | 
| int | SIGNATURE_SECOND_NOT_SIGNEDSignature check result: this is returned by  | 
| int | SIGNATURE_UNKNOWN_PACKAGESignature check result: this is returned by  | 
| int | SYNCHRONOUSFlag parameter for
  | 
| int | VERIFICATION_ALLOWUsed as the  | 
| int | VERIFICATION_REJECTUsed as the  | 
| int | VERSION_CODE_HIGHESTConstant for specifying the highest installed package version code. | 
| Fields | |
|---|---|
| 
    public
    static
    final
    List<Certificate> | TRUST_ALLTrust any Installer to provide checksums for the package. | 
| 
    public
    static
    final
    List<Certificate> | TRUST_NONEDon't trust any Installer to provide checksums for the package. | 
| Public constructors | |
|---|---|
| 
      PackageManager()
      
      This constructor is deprecated.
    Do not instantiate or subclass - obtain an instance from
  | |
| Public methods | |
|---|---|
| 
        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
  | 
| 
        abstract
        
        
        
        
        boolean | 
      addPermission(PermissionInfo info)
      Add a new dynamic permission to the system. | 
| 
        abstract
        
        
        
        
        boolean | 
      addPermissionAsync(PermissionInfo info)
      Like  | 
| 
        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
  | 
| 
        
        
        
        
        
        boolean | 
      addWhitelistedRestrictedPermission(String packageName, String permName, int whitelistFlags)
      Adds a whitelisted restricted permission for an app. | 
| 
        
        
        
        
        
        boolean | 
      canPackageQuery(String sourcePackageName, String targetPackageName)
      Returns  | 
| 
        
        
        
        
        
        boolean[] | 
      canPackageQuery(String sourcePackageName, String[] targetPackageNames)
      Same as  | 
| 
        abstract
        
        
        
        
        boolean | 
      canRequestPackageInstalls()
      Checks whether the calling package is allowed to request package installs through package installer. | 
| 
        abstract
        
        
        
        
        String[] | 
      canonicalToCurrentPackageNames(String[] packageNames)
      Map from a packages canonical name to the current name in use on the device. | 
| 
        abstract
        
        
        
        
        int | 
      checkPermission(String permName, String packageName)
      Check whether a particular package has been granted a particular permission. | 
| 
        abstract
        
        
        
        
        int | 
      checkSignatures(String packageName1, String packageName2)
      Compare the signatures of two packages to determine if the same signature appears in both of them. | 
| 
        abstract
        
        
        
        
        int | 
      checkSignatures(int uid1, int uid2)
      Like  | 
| 
        abstract
        
        
        
        
        void | 
      clearInstantAppCookie()
      Clears the instant application cookie for the calling app. | 
| 
        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
  | 
| 
        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. | 
| 
        abstract
        
        
        
        
        void | 
      extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay)
      Allows a package listening to the
  | 
| 
        abstract
        
        
        
        
        Drawable | 
      getActivityBanner(ComponentName activityName)
      Retrieve the banner associated with an activity. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getActivityBanner(Intent intent)
      Retrieve the banner associated with an Intent. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getActivityIcon(Intent intent)
      Retrieve the icon associated with an Intent. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getActivityIcon(ComponentName activityName)
      Retrieve the icon associated with an activity. | 
| 
        abstract
        
        
        
        
        ActivityInfo | 
      getActivityInfo(ComponentName component, int flags)
      Retrieve all of the information we know about a particular activity class. | 
| 
        
        
        
        
        
        ActivityInfo | 
      getActivityInfo(ComponentName component, PackageManager.ComponentInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        Drawable | 
      getActivityLogo(Intent intent)
      Retrieve the logo associated with an Intent. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getActivityLogo(ComponentName activityName)
      Retrieve the logo associated with an activity. | 
| 
        abstract
        
        
        
        
        List<PermissionGroupInfo> | 
      getAllPermissionGroups(int flags)
      Retrieve all of the known permission groups in the system. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getApplicationBanner(String packageName)
      Retrieve the banner associated with an application. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getApplicationBanner(ApplicationInfo info)
      Retrieve the banner associated with an application. | 
| 
        abstract
        
        
        
        
        int | 
      getApplicationEnabledSetting(String packageName)
      Return the enabled setting for an application. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getApplicationIcon(ApplicationInfo info)
      Retrieve the icon associated with an application. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getApplicationIcon(String packageName)
      Retrieve the icon associated with an application. | 
| 
        
        
        
        
        
        ApplicationInfo | 
      getApplicationInfo(String packageName, PackageManager.ApplicationInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        ApplicationInfo | 
      getApplicationInfo(String packageName, int flags)
      Retrieve all of the information we know about a particular package/application. | 
| 
        abstract
        
        
        
        
        CharSequence | 
      getApplicationLabel(ApplicationInfo info)
      Return the label to use for this application. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getApplicationLogo(String packageName)
      Retrieve the logo associated with an application. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getApplicationLogo(ApplicationInfo info)
      Retrieve the logo associated with an application. | 
| 
        
        
        
        
        
        ArchivedPackageInfo | 
      getArchivedPackage(String packageName)
      Return archived package info for the package or null if the package is not installed. | 
| 
        
        
        
        
        
        CharSequence | 
      getBackgroundPermissionOptionLabel()
      Gets the localized label that corresponds to the option in settings for granting background access. | 
| 
        abstract
        
        
        
        
        ChangedPackages | 
      getChangedPackages(int sequenceNumber)
      Returns the names of the packages that have been changed [eg. | 
| 
        abstract
        
        
        
        
        int | 
      getComponentEnabledSetting(ComponentName componentName)
      Return the enabled setting for a package component (activity, receiver, service, provider). | 
| 
        abstract
        
        
        
        
        Drawable | 
      getDefaultActivityIcon()
      Return the generic icon for an activity that is used when no specific icon is defined. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getDrawable(String packageName, int resid, ApplicationInfo appInfo)
      Retrieve an image from a package. | 
| 
        
        
        
        
        
        void | 
      getGroupOfPlatformPermission(String permissionName, Executor executor, Consumer<String> callback)
      Get the platform-defined permission group of a particular permission, if the permission is a platform-defined permission. | 
| 
        
        
        
        
        
        InstallSourceInfo | 
      getInstallSourceInfo(String packageName)
      Retrieves information about how a package was installed or updated. | 
| 
        abstract
        
        
        
        
        List<ApplicationInfo> | 
      getInstalledApplications(int flags)
      Return a List of all application packages that are installed for the current user. | 
| 
        
        
        
        
        
        List<ApplicationInfo> | 
      getInstalledApplications(PackageManager.ApplicationInfoFlags flags)
       | 
| 
        
        
        
        
        
        List<ModuleInfo> | 
      getInstalledModules(int flags)
      Return a List of all modules that are installed. | 
| 
        abstract
        
        
        
        
        List<PackageInfo> | 
      getInstalledPackages(int flags)
      Return a List of all packages that are installed for the current user. | 
| 
        
        
        
        
        
        List<PackageInfo> | 
      getInstalledPackages(PackageManager.PackageInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        String | 
      getInstallerPackageName(String packageName)
      
      This method was deprecated
      in API level 30.
    use  | 
| 
        abstract
        
        
        
        
        byte[] | 
      getInstantAppCookie()
      Gets the instant application cookie for this app. | 
| 
        abstract
        
        
        
        
        int | 
      getInstantAppCookieMaxBytes()
      Gets the maximum size in bytes of the cookie data an instant app can store on the device. | 
| 
        abstract
        
        
        
        
        InstrumentationInfo | 
      getInstrumentationInfo(ComponentName className, int flags)
      Retrieve all of the information we know about a particular instrumentation class. | 
| 
        abstract
        
        
        
        
        Intent | 
      getLaunchIntentForPackage(String packageName)
      Returns a "good" intent to launch a front-door activity in a package. | 
| 
        
        
        
        
        
        IntentSender | 
      getLaunchIntentSenderForPackage(String packageName)
      Returns an  | 
| 
        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. | 
| 
        
        
        
        
        
        Set<String> | 
      getMimeGroup(String mimeGroup)
      Gets all MIME types contained by MIME group. | 
| 
        
        
        
        
        
        ModuleInfo | 
      getModuleInfo(String packageName, int flags)
      Retrieve information for a particular module. | 
| 
        abstract
        
        
        
        
        String | 
      getNameForUid(int uid)
      Retrieve the official name associated with a uid. | 
| 
        
        
        
        
        
        PackageInfo | 
      getPackageArchiveInfo(String archiveFilePath, int flags)
      Retrieve overall information about an application package defined in a
 package archive file
 Use  | 
| 
        
        
        
        
        
        PackageInfo | 
      getPackageArchiveInfo(String archiveFilePath, PackageManager.PackageInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        int[] | 
      getPackageGids(String packageName)
      Return an array of all of the POSIX secondary group IDs that have been assigned to the given package. | 
| 
        abstract
        
        
        
        
        int[] | 
      getPackageGids(String packageName, int flags)
      Return an array of all of the POSIX secondary group IDs that have been assigned to the given package. | 
| 
        
        
        
        
        
        int[] | 
      getPackageGids(String packageName, PackageManager.PackageInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        PackageInfo | 
      getPackageInfo(String packageName, int flags)
      Retrieve overall information about an application package that is installed on the system. | 
| 
        
        
        
        
        
        PackageInfo | 
      getPackageInfo(String packageName, PackageManager.PackageInfoFlags flags)
       | 
| 
        
        
        
        
        
        PackageInfo | 
      getPackageInfo(VersionedPackage versionedPackage, PackageManager.PackageInfoFlags flags)
      See  | 
| 
        abstract
        
        
        
        
        PackageInfo | 
      getPackageInfo(VersionedPackage versionedPackage, int flags)
      Retrieve overall information about an application package that is installed on the system. | 
| 
        abstract
        
        
        
        
        PackageInstaller | 
      getPackageInstaller()
      Return interface that offers the ability to install, upgrade, and remove applications on the device. | 
| 
        
        
        
        
        
        int | 
      getPackageUid(String packageName, PackageManager.PackageInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        int | 
      getPackageUid(String packageName, int flags)
      Return the UID associated with the given package name. | 
| 
        abstract
        
        
        
        
        String[] | 
      getPackagesForUid(int uid)
      Retrieve the names of all packages that are associated with a particular user id. | 
| 
        abstract
        
        
        
        
        List<PackageInfo> | 
      getPackagesHoldingPermissions(String[] permissions, int flags)
      Return a List of all installed packages that are currently holding any of the given permissions. | 
| 
        
        
        
        
        
        List<PackageInfo> | 
      getPackagesHoldingPermissions(String[] permissions, PackageManager.PackageInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        PermissionGroupInfo | 
      getPermissionGroupInfo(String groupName, int flags)
      Retrieve all of the information we know about a particular group of permissions. | 
| 
        abstract
        
        
        
        
        PermissionInfo | 
      getPermissionInfo(String permName, int flags)
      Retrieve all of the information we know about a particular permission. | 
| 
        
        
        
        
        
        void | 
      getPlatformPermissionsForGroup(String permissionGroupName, Executor executor, Consumer<List<String>> callback)
      Get the platform-defined permissions which belong to a particular permission group. | 
| 
        abstract
        
        
        
        
        int | 
      getPreferredActivities(List<IntentFilter> outFilters, List<ComponentName> outActivities, 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
  | 
| 
        abstract
        
        
        
        
        List<PackageInfo> | 
      getPreferredPackages(int flags)
      
      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
  | 
| 
        
        
        
        
        
        PackageManager.Property | 
      getProperty(String propertyName, String packageName)
      Returns the property defined in the given package's <application> tag. | 
| 
        
        
        
        
        
        PackageManager.Property | 
      getProperty(String propertyName, ComponentName component)
      Returns the property defined in the given component declaration. | 
| 
        abstract
        
        
        
        
        ProviderInfo | 
      getProviderInfo(ComponentName component, int flags)
      Retrieve all of the information we know about a particular content provider class. | 
| 
        
        
        
        
        
        ProviderInfo | 
      getProviderInfo(ComponentName component, PackageManager.ComponentInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        ActivityInfo | 
      getReceiverInfo(ComponentName component, int flags)
      Retrieve all of the information we know about a particular receiver class. | 
| 
        
        
        
        
        
        ActivityInfo | 
      getReceiverInfo(ComponentName component, PackageManager.ComponentInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        Resources | 
      getResourcesForActivity(ComponentName activityName)
      Retrieve the resources associated with an activity. | 
| 
        abstract
        
        
        
        
        Resources | 
      getResourcesForApplication(ApplicationInfo app)
      Retrieve the resources for an application. | 
| 
        abstract
        
        
        
        
        Resources | 
      getResourcesForApplication(String packageName)
      Retrieve the resources associated with an application. | 
| 
        
        
        
        
        
        Resources | 
      getResourcesForApplication(ApplicationInfo app, Configuration configuration)
      Retrieve the resources for an application for the provided configuration. | 
| 
        
        
        
        
        
        ServiceInfo | 
      getServiceInfo(ComponentName component, PackageManager.ComponentInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        ServiceInfo | 
      getServiceInfo(ComponentName component, int flags)
      Retrieve all of the information we know about a particular service class. | 
| 
        
        
        
        
        
        List<SharedLibraryInfo> | 
      getSharedLibraries(PackageManager.PackageInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        List<SharedLibraryInfo> | 
      getSharedLibraries(int flags)
      Get a list of shared libraries on the device. | 
| 
        
        
        
        
        
        Bundle | 
      getSuspendedPackageAppExtras()
      Returns a  | 
| 
        
        
        
        
        
        boolean | 
      getSyntheticAppDetailsActivityEnabled(String packageName)
      Return whether a synthetic app details activity will be generated if the app has no enabled launcher activity. | 
| 
        abstract
        
        
        
        
        FeatureInfo[] | 
      getSystemAvailableFeatures()
      Get a list of features that are available on the system. | 
| 
        abstract
        
        
        
        
        String[] | 
      getSystemSharedLibraryNames()
      Get a list of shared libraries that are available on the system. | 
| 
        
        
        
        
        
        int | 
      getTargetSdkVersion(String packageName)
       | 
| 
        abstract
        
        
        
        
        CharSequence | 
      getText(String packageName, int resid, ApplicationInfo appInfo)
      Retrieve text from a package. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user, Rect badgeLocation, int badgeDensity)
      If the target user is a managed profile of the calling user or the caller is itself a managed profile, then this returns a badged copy of the given drawable allowing the user to distinguish it from the original drawable. | 
| 
        abstract
        
        
        
        
        Drawable | 
      getUserBadgedIcon(Drawable drawable, UserHandle user)
      If the target user is a managed profile, then this returns a badged copy of the given icon to be able to distinguish it from the original icon. | 
| 
        abstract
        
        
        
        
        CharSequence | 
      getUserBadgedLabel(CharSequence label, UserHandle user)
      If the target user is a managed profile of the calling user or the caller is itself a managed profile, then this returns a copy of the label with badging for accessibility services like talkback. | 
| 
        
        
        static
        
        
        SigningInfo | 
      getVerifiedSigningInfo(String path, int minAppSigningSchemeVersion)
      Verifies and returns the app signing information of the file at the given path. | 
| 
        
        
        
        
        
        Set<String> | 
      getWhitelistedRestrictedPermissions(String packageName, int whitelistFlag)
      Gets the restricted permissions that have been whitelisted and the app is allowed to have them granted in their full form. | 
| 
        abstract
        
        
        
        
        XmlResourceParser | 
      getXml(String packageName, int resid, ApplicationInfo appInfo)
      Retrieve an XML file from a package. | 
| 
        
        
        
        
        
        boolean | 
      hasSigningCertificate(int uid, byte[] certificate, int type)
      Searches the set of signing certificates by which the package(s) for the given uid has proven to have been signed. | 
| 
        
        
        
        
        
        boolean | 
      hasSigningCertificate(String packageName, byte[] certificate, int type)
      Searches the set of signing certificates by which the given package has proven to have been signed. | 
| 
        abstract
        
        
        
        
        boolean | 
      hasSystemFeature(String featureName)
      Check whether the given feature name is one of the available features as
 returned by  | 
| 
        abstract
        
        
        
        
        boolean | 
      hasSystemFeature(String featureName, int version)
      Check whether the given feature name and version is one of the available
 features as returned by  | 
| 
        
        
        
        
        
        boolean | 
      isAppArchivable(String packageName)
      Returns true if an app is archivable. | 
| 
        
        
        
        
        
        boolean | 
      isAutoRevokeWhitelisted(String packageName)
      Checks whether an application is exempt from having its permissions be automatically revoked when the app is unused for an extended period of time. | 
| 
        
        
        
        
        
        boolean | 
      isAutoRevokeWhitelisted()
      Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. | 
| 
        
        
        
        
        
        boolean | 
      isDefaultApplicationIcon(Drawable drawable)
      Returns if the provided drawable represents the default activity icon provided by the system. | 
| 
        
        
        
        
        
        boolean | 
      isDeviceUpgrading()
      Returns true if the device is upgrading, such as first boot after OTA. | 
| 
        abstract
        
        
        
        
        boolean | 
      isInstantApp()
      Gets whether this application is an instant app. | 
| 
        abstract
        
        
        
        
        boolean | 
      isInstantApp(String packageName)
      Gets whether the given package is an instant app. | 
| 
        
        
        
        
        
        boolean | 
      isPackageStopped(String packageName)
      Query if an app is currently stopped. | 
| 
        
        
        
        
        
        boolean | 
      isPackageSuspended(String packageName)
      Query if an app is currently suspended. | 
| 
        
        
        
        
        
        boolean | 
      isPackageSuspended()
      Apps can query this to know if they have been suspended. | 
| 
        abstract
        
        
        
        
        boolean | 
      isPermissionRevokedByPolicy(String permName, String packageName)
      Checks whether a particular permissions has been revoked for a package by policy. | 
| 
        abstract
        
        
        
        
        boolean | 
      isSafeMode()
      Return whether the device has been booted into safe mode. | 
| 
        
        
        
        
        <T>
        T | 
      parseAndroidManifest(File apkFile, Function<XmlResourceParser, T> parserFunction)
      Retrieve AndroidManifest.xml information for the given application apk file. | 
| 
        
        
        
        
        <T>
        T | 
      parseAndroidManifest(ParcelFileDescriptor apkFileDescriptor, Function<XmlResourceParser, T> parserFunction)
      Similar to  | 
| 
        
        
        
        
        
        List<PackageManager.Property> | 
      queryActivityProperty(String propertyName)
      Returns the property definition for all <activity> and <activity-alias> tags. | 
| 
        
        
        
        
        
        List<PackageManager.Property> | 
      queryApplicationProperty(String propertyName)
      Returns the property definition for all <application> tags. | 
| 
        
        
        
        
        
        List<ResolveInfo> | 
      queryBroadcastReceivers(Intent intent, PackageManager.ResolveInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        List<ResolveInfo> | 
      queryBroadcastReceivers(Intent intent, int flags)
      Retrieve all receivers that can handle a broadcast of the given intent. | 
| 
        abstract
        
        
        
        
        List<ProviderInfo> | 
      queryContentProviders(String processName, int uid, int flags)
      Retrieve content provider information. | 
| 
        
        
        
        
        
        List<ProviderInfo> | 
      queryContentProviders(String processName, int uid, PackageManager.ComponentInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        List<InstrumentationInfo> | 
      queryInstrumentation(String targetPackage, int flags)
      Retrieve information about available instrumentation code. | 
| 
        
        
        
        
        
        List<ResolveInfo> | 
      queryIntentActivities(Intent intent, PackageManager.ResolveInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        List<ResolveInfo> | 
      queryIntentActivities(Intent intent, int flags)
      Retrieve all activities that can be performed for the given intent. | 
| 
        abstract
        
        
        
        
        List<ResolveInfo> | 
      queryIntentActivityOptions(ComponentName caller, Intent[] specifics, Intent intent, int flags)
      Retrieve a set of activities that should be presented to the user as similar options. | 
| 
        
        
        
        
        
        List<ResolveInfo> | 
      queryIntentActivityOptions(ComponentName caller, List<Intent> specifics, Intent intent, PackageManager.ResolveInfoFlags flags)
       | 
| 
        
        
        
        
        
        List<ResolveInfo> | 
      queryIntentContentProviders(Intent intent, PackageManager.ResolveInfoFlags flags)
      See  | 
| 
        abstract
        
        
        
        
        List<ResolveInfo> | 
      queryIntentContentProviders(Intent intent, int flags)
      Retrieve all providers that can match the given intent. | 
| 
        abstract
        
        
        
        
        List<ResolveInfo> | 
      queryIntentServices(Intent intent, int flags)
      Retrieve all services that can match the given intent. | 
| 
        
        
        
        
        
        List<ResolveInfo> | 
      queryIntentServices(Intent intent, PackageManager.ResolveInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        List<PermissionInfo> | 
      queryPermissionsByGroup(String permissionGroup, int flags)
      Query for all of the permissions associated with a particular group. | 
| 
        
        
        
        
        
        List<PackageManager.Property> | 
      queryProviderProperty(String propertyName)
      Returns the property definition for all <provider> tags. | 
| 
        
        
        
        
        
        List<PackageManager.Property> | 
      queryReceiverProperty(String propertyName)
      Returns the property definition for all <receiver> tags. | 
| 
        
        
        
        
        
        List<PackageManager.Property> | 
      queryServiceProperty(String propertyName)
      Returns the property definition for all <service> tags. | 
| 
        
        
        
        
        
        void | 
      relinquishUpdateOwnership(String targetPackage)
      Attempt to relinquish the update ownership of the given package. | 
| 
        abstract
        
        
        
        
        void | 
      removePackageFromPreferred(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
  | 
| 
        abstract
        
        
        
        
        void | 
      removePermission(String permName)
      Removes a permission that was previously added with
  | 
| 
        
        
        
        
        
        boolean | 
      removeWhitelistedRestrictedPermission(String packageName, String permName, int whitelistFlags)
      Removes a whitelisted restricted permission for an app. | 
| 
        
        
        
        
        
        void | 
      requestChecksums(String packageName, boolean includeSplits, int required, List<Certificate> trustedInstallers, PackageManager.OnChecksumsReadyListener onChecksumsReadyListener)
      Requests the checksums for APKs within a package. | 
| 
        
        
        
        
        
        ResolveInfo | 
      resolveActivity(Intent intent, PackageManager.ResolveInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        ResolveInfo | 
      resolveActivity(Intent intent, int flags)
      Determine the best action to perform for a given Intent. | 
| 
        
        
        
        
        
        ProviderInfo | 
      resolveContentProvider(String authority, PackageManager.ComponentInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        ProviderInfo | 
      resolveContentProvider(String authority, int flags)
      Find a single content provider by its authority. | 
| 
        abstract
        
        
        
        
        ResolveInfo | 
      resolveService(Intent intent, int flags)
      Determine the best service to handle for a given Intent. | 
| 
        
        
        
        
        
        ResolveInfo | 
      resolveService(Intent intent, PackageManager.ResolveInfoFlags flags)
       | 
| 
        abstract
        
        
        
        
        void | 
      setApplicationCategoryHint(String packageName, int categoryHint)
      Provide a hint of what the  | 
| 
        abstract
        
        
        
        
        void | 
      setApplicationEnabledSetting(String packageName, int newState, int flags)
      Set the enabled setting for an application This setting will override any enabled state which may have been set by the application in its manifest. | 
| 
        
        
        
        
        
        boolean | 
      setAutoRevokeWhitelisted(String packageName, boolean whitelisted)
      Marks an application exempt from having its permissions be automatically revoked when the app is unused for an extended period of time. | 
| 
        abstract
        
        
        
        
        void | 
      setComponentEnabledSetting(ComponentName componentName, int newState, int flags)
      Set the enabled setting for a package component (activity, receiver, service, provider). | 
| 
        
        
        
        
        
        void | 
      setComponentEnabledSettings(List<PackageManager.ComponentEnabledSetting> settings)
      Set the enabled settings for package components such as activities, receivers, services and providers. | 
| 
        abstract
        
        
        
        
        void | 
      setInstallerPackageName(String targetPackage, String installerPackageName)
      Change the installer associated with a given package. | 
| 
        
        
        
        
        
        void | 
      setMimeGroup(String mimeGroup, Set<String> mimeTypes)
      Sets MIME group's MIME types. | 
| 
        abstract
        
        
        
        
        void | 
      updateInstantAppCookie(byte[] cookie)
      Updates the instant application cookie for the calling app. | 
| 
        abstract
        
        
        
        
        void | 
      verifyPendingInstall(int id, int verificationCode)
      Allows a package listening to the
  | 
| Inherited methods | |
|---|---|
Constants
CERT_INPUT_RAW_X509
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
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
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
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
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
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
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)
DELETE_ARCHIVE
public static final int DELETE_ARCHIVE
Flag parameter for PackageInstaller.uninstall(VersionedPackage, int, IntentSender) to
 indicate that the deletion is an archival. This
 flag is only for internal usage as part of
 PackageInstaller.requestArchive.
Constant Value: 16 (0x00000010)
DONT_KILL_APP
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
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
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
public static final String FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports running activities on secondary displays. Displays here
 refers to both physical and virtual displays. Disabling this feature can impact
 support for application projection use-cases and support for virtual devices
 on the device.
Constant Value: "android.software.activities_on_secondary_displays"
FEATURE_APP_WIDGETS
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
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
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
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_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCY
public static final String FEATURE_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCY
Feature for getSystemAvailableFeatures() and hasSystemFeature(String)
 which indicates whether head tracking for spatial audio operates with low-latency,
 as defined by the CDD criteria for the feature.
Constant Value: "android.hardware.audio.spatial.headtracking.low_latency"
FEATURE_AUTOFILL
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
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
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
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
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_BLUETOOTH_LE_CHANNEL_SOUNDING
public static final String FEATURE_BLUETOOTH_LE_CHANNEL_SOUNDING
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device is capable of ranging with
 other devices using channel sounding via Bluetooth Low Energy radio.
Constant Value: "android.hardware.bluetooth_le.channel_sounding"
FEATURE_CAMERA
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
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
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
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
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
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
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
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
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
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
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
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_CANT_SAVE_STATE
public static final String FEATURE_CANT_SAVE_STATE
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device supports the
 R.attr.cantSaveState API.
Constant Value: "android.software.cant_save_state"
FEATURE_COMPANION_DEVICE_SETUP
public static final String FEATURE_COMPANION_DEVICE_SETUP
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports associating
 with devices via CompanionDeviceManager.
Constant Value: "android.software.companion_device_setup"
FEATURE_CONNECTION_SERVICE
public static final String FEATURE_CONNECTION_SERVICE
      This constant was deprecated
      in API level 33.
    use FEATURE_TELECOM instead.
  
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The Connection Service API is enabled on the device.
Constant Value: "android.software.connectionservice"
FEATURE_CONSUMER_IR
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
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:
Constant Value: "android.software.controls"
FEATURE_CREDENTIALS
public static final String FEATURE_CREDENTIALS
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports retrieval of user credentials, via integration with credential providers.
Constant Value: "android.software.credentials"
FEATURE_DEVICE_ADMIN
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_DEVICE_LOCK
public static final String FEATURE_DEVICE_LOCK
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports locking (for example, by a financing provider in case of a missed payment).
Constant Value: "android.software.device_lock"
FEATURE_EMBEDDED
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
public static final String FEATURE_ETHERNET
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): This device supports ethernet.
Constant Value: "android.hardware.ethernet"
FEATURE_EXPANDED_PICTURE_IN_PICTURE
public static final String FEATURE_EXPANDED_PICTURE_IN_PICTURE
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports expanded picture-in-picture multi-window mode.
Constant Value: "android.software.expanded_picture_in_picture"
FEATURE_FACE
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
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
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
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
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
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
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_HARDWARE_KEYSTORE
public static final String FEATURE_HARDWARE_KEYSTORE
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(java.lang.String, int): If this feature is supported, the device implements
 the Android Keystore backed by an isolated execution environment. The version indicates
 which features are implemented in the isolated execution environment:
 
- 400: Inclusion of module information (via tag MODULE_HASH) in the attestation record.
- 300: Ability to include a second IMEI in the ID attestation record, see
 DevicePolicyManager.ID_TYPE_IMEI.
- 200: Hardware support for Curve 25519 (including both Ed25519 signature generation and X25519 key agreement).
- 100: Hardware support for ECDH (see KeyAgreement) and support for app-generated attestation keys (seeKeyGenParameterSpec.Builder.setAttestKeyAlias(String)).
- 41: Hardware enforcement of device-unlocked keys (see KeyGenParameterSpec.Builder.setUnlockedDeviceRequired(boolean)).
- 40: Support for wrapped key import (see WrappedKeyEntry), optional support for ID attestation (seeKeyGenParameterSpec.Builder.setDevicePropertiesAttestationIncluded(boolean)), attestation (seeKeyGenParameterSpec.Builder.setAttestationChallenge(byte[])), AES, HMAC, ECDSA and RSA support where the secret or private key never leaves secure hardware, and support for requiring user authentication before a key can be used.
Constant Value: "android.hardware.hardware_keystore"
FEATURE_HIFI_SENSORS
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
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_IDENTITY_CREDENTIAL_HARDWARE
public static final String FEATURE_IDENTITY_CREDENTIAL_HARDWARE
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(java.lang.String, int): If this feature is supported, the device supports
 IdentityCredentialStore implemented in secure hardware
 at the given feature version.
 
Known feature versions include:
- 202009: corresponds to the features included in the Identity Credential API shipped in Android 11.
- 202101: corresponds to the features included in the Identity Credential API shipped in Android 12.
- 202201: corresponds to the features included in the Identity Credential API shipped in Android 13.
Constant Value: "android.hardware.identity_credential"
FEATURE_IDENTITY_CREDENTIAL_HARDWARE_DIRECT_ACCESS
public static final String FEATURE_IDENTITY_CREDENTIAL_HARDWARE_DIRECT_ACCESS
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(java.lang.String, int): If this feature is supported, the device supports
 IdentityCredentialStore implemented in secure hardware
 with direct access at the given feature version.
 See FEATURE_IDENTITY_CREDENTIAL_HARDWARE for known feature versions.
Constant Value: "android.hardware.identity_credential_direct_access"
FEATURE_INPUT_METHODS
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
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_IPSEC_TUNNEL_MIGRATION
public static final String FEATURE_IPSEC_TUNNEL_MIGRATION
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device has
 the requisite kernel support for migrating IPsec tunnels to new source/destination addresses.
 
This feature implies that the device supports XFRM Migration (CONFIG_XFRM_MIGRATE) and has the kernel fixes to support cross-address-family IPsec tunnel migration
Constant Value: "android.software.ipsec_tunnel_migration"
FEATURE_IRIS
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_KEYSTORE_APP_ATTEST_KEY
public static final String FEATURE_KEYSTORE_APP_ATTEST_KEY
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device has
 a Keystore implementation that can create application-specific attestation keys.
 See KeyGenParameterSpec.Builder.setAttestKeyAlias(String).
Constant Value: "android.hardware.keystore.app_attest_key"
FEATURE_KEYSTORE_LIMITED_USE_KEY
public static final String FEATURE_KEYSTORE_LIMITED_USE_KEY
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device has
 a Keystore implementation that can enforce limited use key in hardware with any max usage
 count (including count equals to 1).
Constant Value: "android.hardware.keystore.limited_use_key"
FEATURE_KEYSTORE_SINGLE_USE_KEY
public static final String FEATURE_KEYSTORE_SINGLE_USE_KEY
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device has
 a Keystore implementation that can only enforce limited use key in hardware with max usage
 count equals to 1.
Constant Value: "android.hardware.keystore.single_use_key"
FEATURE_LEANBACK
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
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
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
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
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
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
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
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
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
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
public static final String FEATURE_NFC
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device can communicate using Near-Field
 Communications (NFC), acting as a reader.
Constant Value: "android.hardware.nfc"
FEATURE_NFC_BEAM
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
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
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
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
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_OPENGLES_DEQP_LEVEL
public static final String FEATURE_OPENGLES_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 OpenGLES 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: 2021-03-01 is encoded as 0x07E50301, and would indicate that the device passes the OpenGL ES dEQP test suite version that was current on 2021-03-01.
Constant Value: "android.software.opengles.deqp.level"
FEATURE_OPENGLES_EXTENSION_PACK
public static final String FEATURE_OPENGLES_EXTENSION_PACK
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device supports the OpenGL ES
 
 Android Extension Pack.
Constant Value: "android.hardware.opengles.aep"
FEATURE_PC
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
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
public static final String FEATURE_PRINTING
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports printing.
Constant Value: "android.software.print"
FEATURE_RAM_LOW
public static final String FEATURE_RAM_LOW
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device's
 ActivityManager.isLowRamDevice() method returns
 true.
Constant Value: "android.hardware.ram.low"
FEATURE_RAM_NORMAL
public static final String FEATURE_RAM_NORMAL
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device's
 ActivityManager.isLowRamDevice() method returns
 false.
Constant Value: "android.hardware.ram.normal"
FEATURE_SCREEN_LANDSCAPE
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
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
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
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_SECURITY_MODEL_COMPATIBLE
public static final String FEATURE_SECURITY_MODEL_COMPATIBLE
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device is
 compatible with Android's security model.
 
See sections 2 and 9 in the Android CDD for more details.
Constant Value: "android.hardware.security.model.compatible"
FEATURE_SENSOR_ACCELEROMETER
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_ACCELEROMETER_LIMITED_AXES
public static final String FEATURE_SENSOR_ACCELEROMETER_LIMITED_AXES
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device includes a limited axes accelerometer.
Constant Value: "android.hardware.sensor.accelerometer_limited_axes"
FEATURE_SENSOR_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
public static final String FEATURE_SENSOR_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device includes an uncalibrated limited axes accelerometer.
Constant Value: "android.hardware.sensor.accelerometer_limited_axes_uncalibrated"
FEATURE_SENSOR_AMBIENT_TEMPERATURE
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
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
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_DYNAMIC_HEAD_TRACKER
public static final String FEATURE_SENSOR_DYNAMIC_HEAD_TRACKER
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device supports exposing head tracker sensors from peripheral
 devices via the dynamic sensors API.
Constant Value: "android.hardware.sensor.dynamic.head_tracker"
FEATURE_SENSOR_GYROSCOPE
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_GYROSCOPE_LIMITED_AXES
public static final String FEATURE_SENSOR_GYROSCOPE_LIMITED_AXES
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device includes a limited axes gyroscope.
Constant Value: "android.hardware.sensor.gyroscope_limited_axes"
FEATURE_SENSOR_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
public static final String FEATURE_SENSOR_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device includes an uncalibrated limited axes gyroscope.
Constant Value: "android.hardware.sensor.gyroscope_limited_axes_uncalibrated"
FEATURE_SENSOR_HEADING
public static final String FEATURE_SENSOR_HEADING
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device includes a heading sensor.
Constant Value: "android.hardware.sensor.heading"
FEATURE_SENSOR_HEART_RATE
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
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
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
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
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
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
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
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
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
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
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
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
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
public static final String FEATURE_STRONGBOX_KEYSTORE
Feature for getSystemAvailableFeatures(), hasSystemFeature(java.lang.String), and
 hasSystemFeature(java.lang.String, int): If this feature is supported, the device implements
 the Android Keystore backed by a dedicated secure processor referred to as
 
 StrongBox. If this feature has a version, the version number indicates which features are
 implemented in StrongBox:
 
- 400: Inclusion of module information (via tag MODULE_HASH) in the attestation record.
- 300: Ability to include a second IMEI in the ID attestation record, see
 DevicePolicyManager.ID_TYPE_IMEI.
- 200: No new features for StrongBox (the Android Keystore environment backed by an isolated execution environment has gained support for Curve 25519 in this version, but the implementation backed by a dedicated secure processor is not expected to implement it).
- 100: Hardware support for ECDH (see KeyAgreement) and support for app-generated attestation keys (seeKeyGenParameterSpec.Builder.setAttestKeyAlias(String)).
- 41: Hardware enforcement of device-unlocked keys (see KeyGenParameterSpec.Builder.setUnlockedDeviceRequired(boolean)).
- 40: Support for wrapped key import (see WrappedKeyEntry), optional support for ID attestation (seeKeyGenParameterSpec.Builder.setDevicePropertiesAttestationIncluded(boolean)), attestation (seeKeyGenParameterSpec.Builder.setAttestationChallenge(byte[])), AES, HMAC, ECDSA and RSA support where the secret or private key never leaves secure hardware, and support for requiring user authentication before a key can be used.
Constant Value: "android.hardware.strongbox_keystore"
FEATURE_TELECOM
public static final String FEATURE_TELECOM
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports Telecom Service APIs.
Constant Value: "android.software.telecom"
FEATURE_TELEPHONY
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_CALLING
public static final String FEATURE_TELEPHONY_CALLING
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports Telephony APIs for calling service.
 
This feature should only be defined if FEATURE_TELEPHONY_RADIO_ACCESS,
 FEATURE_TELEPHONY_SUBSCRIPTION, and FEATURE_TELECOM have been defined.
Constant Value: "android.hardware.telephony.calling"
FEATURE_TELEPHONY_CDMA
public static final String FEATURE_TELEPHONY_CDMA
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device has a CDMA telephony stack.
 
This feature should only be defined if FEATURE_TELEPHONY has been defined.
Constant Value: "android.hardware.telephony.cdma"
FEATURE_TELEPHONY_DATA
public static final String FEATURE_TELEPHONY_DATA
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports Telephony APIs for data service.
 
This feature should only be defined if both FEATURE_TELEPHONY_SUBSCRIPTION
 and FEATURE_TELEPHONY_RADIO_ACCESS have been defined.
Constant Value: "android.hardware.telephony.data"
FEATURE_TELEPHONY_EUICC
public static final String FEATURE_TELEPHONY_EUICC
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports embedded subscriptions on eUICCs.
 This feature should only be defined if FEATURE_TELEPHONY_SUBSCRIPTION
 has been defined.
Constant Value: "android.hardware.telephony.euicc"
FEATURE_TELEPHONY_EUICC_MEP
public static final String FEATURE_TELEPHONY_EUICC_MEP
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports multiple enabled profiles on eUICCs.
 
Devices declaring this feature must have an implementation of the
  UiccCardInfo.getPorts,
  UiccCardInfo.isMultipleEnabledProfilesSupported and
  (with portIndex).
 This feature should only be defined if FEATURE_TELEPHONY_EUICC have been defined.
Constant Value: "android.hardware.telephony.euicc.mep"
FEATURE_TELEPHONY_GSM
public static final String FEATURE_TELEPHONY_GSM
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device has a GSM telephony stack.
 
This feature should only be defined if FEATURE_TELEPHONY has been defined.
Constant Value: "android.hardware.telephony.gsm"
FEATURE_TELEPHONY_IMS
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.
 
This feature should only be defined if FEATURE_TELEPHONY_DATA has been defined.
Constant Value: "android.hardware.telephony.ims"
FEATURE_TELEPHONY_MBMS
public static final String FEATURE_TELEPHONY_MBMS
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports cell-broadcast reception using the MBMS APIs.
 
This feature should only be defined if both FEATURE_TELEPHONY_SUBSCRIPTION
 and FEATURE_TELEPHONY_RADIO_ACCESS have been defined.
Constant Value: "android.hardware.telephony.mbms"
FEATURE_TELEPHONY_MESSAGING
public static final String FEATURE_TELEPHONY_MESSAGING
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports Telephony APIs for SMS and MMS.
 
This feature should only be defined if both FEATURE_TELEPHONY_SUBSCRIPTION
 and FEATURE_TELEPHONY_RADIO_ACCESS have been defined.
Constant Value: "android.hardware.telephony.messaging"
FEATURE_TELEPHONY_RADIO_ACCESS
public static final String FEATURE_TELEPHONY_RADIO_ACCESS
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports Telephony APIs for the radio access.
 
This feature should only be defined if FEATURE_TELEPHONY has been defined.
Constant Value: "android.hardware.telephony.radio.access"
FEATURE_TELEPHONY_SUBSCRIPTION
public static final String FEATURE_TELEPHONY_SUBSCRIPTION
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device supports Telephony APIs for the subscription.
 
This feature should only be defined if FEATURE_TELEPHONY has been defined.
Constant Value: "android.hardware.telephony.subscription"
FEATURE_TELEVISION
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_THREAD_NETWORK
public static final String FEATURE_THREAD_NETWORK
Feature for getSystemAvailableFeatures() and hasSystemFeature(String):
 The device is capable of communicating with other devices via
 Thread networking protocol.
Constant Value: "android.hardware.thread_network"
FEATURE_TOUCHSCREEN
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
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
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
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
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
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_UWB
public static final String FEATURE_UWB
Feature for getSystemAvailableFeatures() and
 hasSystemFeature(String): The device is capable of communicating with
 other devices via ultra wideband.
Constant Value: "android.hardware.uwb"
FEATURE_VERIFIED_BOOT
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
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
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
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
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
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_pointersextension andVkPhysicalDeviceVariablePointerFeaturesKHR::variablePointersfeature are supported.
- VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffersis at least 16.
Constant Value: "android.hardware.vulkan.compute"
FEATURE_VULKAN_HARDWARE_LEVEL
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
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
- The VK_ANDROID_external_memory_android_hardware_bufferextension is supported.
- SYNC_FDexternal semaphore and fence handles are supported.
- VkPhysicalDeviceSamplerYcbcrConversionFeatures::samplerYcbcrConversionis supported.
Constant Value: "android.hardware.vulkan.version"
FEATURE_WALLET_LOCATION_BASED_SUGGESTIONS
public static final String FEATURE_WALLET_LOCATION_BASED_SUGGESTIONS
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports showing location-based suggestions for wallet cards provided by the default payment
 app.
Constant Value: "android.software.wallet_location_based_suggestions"
FEATURE_WATCH
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
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
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
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
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
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
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"
FEATURE_WINDOW_MAGNIFICATION
public static final String FEATURE_WINDOW_MAGNIFICATION
Feature for getSystemAvailableFeatures() and hasSystemFeature(String): The device
 supports window magnification.
Constant Value: "android.software.window_magnification"
FLAG_PERMISSION_WHITELIST_INSTALLER
public static final int FLAG_PERMISSION_WHITELIST_INSTALLER
Permission whitelist flag: permissions whitelisted by the installer. Permissions can also be whitelisted by the system, on upgrade, or on role grant.
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
Constant Value: 2 (0x00000002)
FLAG_PERMISSION_WHITELIST_SYSTEM
public static final int FLAG_PERMISSION_WHITELIST_SYSTEM
Permission whitelist flag: permissions whitelisted by the system. Permissions can also be whitelisted by the installer, on upgrade, or on role grant.
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
Constant Value: 1 (0x00000001)
FLAG_PERMISSION_WHITELIST_UPGRADE
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, the system, or on role grant.
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
Constant Value: 4 (0x00000004)
GET_ACTIVITIES
public static final int GET_ACTIVITIES
PackageInfo flag: return information about
 activities in the package in PackageInfo.activities.
Constant Value: 1 (0x00000001)
GET_ATTRIBUTIONS
public static final int GET_ATTRIBUTIONS
      This constant was deprecated
      in API level 34.
    Use GET_ATTRIBUTIONS_LONG to avoid unintended sign extension.
  
Constant Value: -2147483648 (0x80000000)
GET_ATTRIBUTIONS_LONG
public static final long GET_ATTRIBUTIONS_LONG
PackageInfo flag: return all attributions declared in the package manifest
Constant Value: 2147483648 (0x0000000080000000)
GET_CONFIGURATIONS
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
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
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
public static final int GET_GIDS
PackageInfo flag: return the
 group ids 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
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
public static final int GET_INTENT_FILTERS
      This constant was deprecated
      in API level 31.
    The platform does not support getting IntentFilters for the package.
  
PackageInfo flag: return information about the
 intent filters supported by the activity.
Constant Value: 32 (0x00000020)
GET_META_DATA
public static final int GET_META_DATA
ComponentInfo flag: return the ComponentInfo.metaData
 data Bundles that are associated with a component.
 This applies for any API returning a ComponentInfo subclass.
Constant Value: 128 (0x00000080)
GET_PERMISSIONS
public static final int GET_PERMISSIONS
PackageInfo flag: return information about
 permissions in the package in
 PackageInfo.permissions.
Constant Value: 4096 (0x00001000)
GET_PROVIDERS
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
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
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
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
public static final int GET_SHARED_LIBRARY_FILES
ApplicationInfo flag: return the
 paths to the shared libraries
 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
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
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
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
public static final int GET_URI_PERMISSION_PATTERNS
ProviderInfo flag: return the
 URI permission patterns
 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
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
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
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
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
public static final int INSTALL_REASON_USER
Code indicating that the package installation was initiated by the user.
Constant Value: 4 (0x00000004)
INSTALL_SCENARIO_BULK
public static final int INSTALL_SCENARIO_BULK
Installation scenario indicating a bulk operation with the desired result of a fully optimized application. If the system is busy or resources are scarce the system will perform less work to avoid impacting system health. Examples of bulk installation scenarios might include device restore, background updates of multiple applications, or user-triggered updates for all applications. The decision to use BULK or BULK_SECONDARY should be based on the desired user experience. BULK_SECONDARY operations may take less time to complete but, when they do, will produce less optimized applications. The device state (e.g. memory usage or battery status) should not be considered when making this decision as those factors are taken into account by the Package Manager when acting on the installation scenario.
Constant Value: 2 (0x00000002)
INSTALL_SCENARIO_BULK_SECONDARY
public static final int INSTALL_SCENARIO_BULK_SECONDARY
Installation scenario indicating a bulk operation that prioritizes minimal system health impact over application optimization. The application may undergo additional optimization if the system is idle and system resources are abundant. The more elements of a bulk operation that are marked BULK_SECONDARY, the faster the entire bulk operation will be. See the comments for INSTALL_SCENARIO_BULK for more information.
Constant Value: 3 (0x00000003)
INSTALL_SCENARIO_DEFAULT
public static final int INSTALL_SCENARIO_DEFAULT
A value to indicate the lack of CUJ information, disabling all installation scenario logic.
Constant Value: 0 (0x00000000)
INSTALL_SCENARIO_FAST
public static final int INSTALL_SCENARIO_FAST
Installation scenario providing the fastest "install button to launch" experience possible.
Constant Value: 1 (0x00000001)
MATCH_ALL
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
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_ARCHIVED_PACKAGES
public static final long MATCH_ARCHIVED_PACKAGES
Flag parameter to also retrieve some information about archived packages.
 Packages can be archived through PackageInstaller.requestArchive and do not have any
 APKs stored on the device, but do keep the data directory.
 
 Note: Archived apps are a subset of apps returned by MATCH_UNINSTALLED_PACKAGES.
 
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: 4294967296 (0x0000000100000000)
MATCH_DEFAULT_ONLY
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
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:
 
Constant Value: 268435456 (0x10000000)
MATCH_DIRECT_BOOT_AWARE
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:
Constant Value: 524288 (0x00080000)
MATCH_DIRECT_BOOT_UNAWARE
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:
Constant Value: 262144 (0x00040000)
MATCH_DISABLED_COMPONENTS
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
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
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
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
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
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
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)
PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT
public static final String PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT
Application level PackageManager
 .Property for an app to inform the system that the app can be opted-in or opted-out
 from the compatibility treatment that rotates camera output by 90 degrees on landscape
 sensors on devices known to have compatibility issues.
 
The treatment is disabled by default but device manufacturers can enable the treatment
 using their discretion to improve camera compatibility. With this property set to
 false, the rotation will not be applied. A value of true
 will ensure that rotation is applied, provided it is enabled for the device. In most cases,
 if rotation is the desired behavior this property need not be set. However, if your app
 experiences stretching or incorrect rotation on these devices, explicitly setting this to
 true may resolve that behavior. Apps should set this to false if there
 is confidence that the app handles
 CameraCharacteristics.SENSOR_ORIENTATION correctly.
 See  the
 documentation for best practice.
 
Syntax:
 <application>
   <property
     android:name="android.camera.PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT"
     android:value="true|false"/>
 </application>
 Constant Value: "android.camera.PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT"
PROPERTY_MEDIA_CAPABILITIES
public static final String PROPERTY_MEDIA_CAPABILITIES
<application> level PackageManager.Property tag specifying
 the XML resource ID containing an application's media capabilities XML file
 For example:
 <application>
   <property android:name="android.media.PROPERTY_MEDIA_CAPABILITIES"
     android:resource="@xml/media_capabilities">
 <application>
Constant Value: "android.media.PROPERTY_MEDIA_CAPABILITIES"
PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES
public static final String PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES
<application> level PackageManager.Property tag
 specifying the XML resource ID containing the declaration of the self-certified network
 capabilities used by the application.
 
 Starting from Android 14, usage of some network capabilities in
 ConnectivityManager.requestNetwork(NetworkRequest, PendingIntent) require the application to
 declare its usage of that particular capability in this resource. Only some capabilities
 require a declaration. Please look up the specific capability you want to use in
 NetworkCapabilities to see if it needs declaration in this property.
 For example:
 <application>
   <property android:name="android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES"
     android:resource="@xml/self_certified_network_capabilities">
 <application>
 
 The detail format of self_certified_network_capabilities.xml is described in
 NetworkRequest
Constant Value: "android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES"
PROPERTY_SPECIAL_USE_FGS_SUBTYPE
public static final String PROPERTY_SPECIAL_USE_FGS_SUBTYPE
<service> level PackageManager.Property tag specifying
 the actual use case of the service if it's foreground service with the type
 ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE.
 
For example: <service> <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="foo"/> </service>
Constant Value: "android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
PROPERTY_USE_RESTRICTED_BACKUP_MODE
public static final String PROPERTY_USE_RESTRICTED_BACKUP_MODE
<application> level PackageManager.Property tag
 specifying whether the app should be put into the "restricted" backup mode when it's started
 for backup and restore operations.
 
See for information about restricted mode.
Starting with Android 16 apps may not be started in restricted mode based on this property.
Syntax:
 <application>
   <property
     android:name="android.app.backup.PROPERTY_USE_RESTRICTED_BACKUP_MODE"
     android:value="true|false"/>
 </application>
 If this property is set, the operating system will respect it for now (see Note below).
 If it's not set, the behavior depends on the SDK level that the app is targeting. For apps
 targeting SDK level Build.VERSION_CODES.VANILLA_ICE_CREAM or lower, the
 property defaults to true. For apps targeting SDK level
 Build.VERSION_CODES.BAKLAVA or higher, the operating system will make a
 decision dynamically.
 
Note: It's not recommended to set this property to true unless absolutely
 necessary. In a future Android version, this property may be deprecated in favor of removing
 restricted mode completely.
Constant Value: "android.app.backup.PROPERTY_USE_RESTRICTED_BACKUP_MODE"
SIGNATURE_FIRST_NOT_SIGNED
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
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
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
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
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
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
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
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
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
public static final int VERSION_CODE_HIGHEST
Constant for specifying the highest installed package version code.
Constant Value: -1 (0xffffffff)
Fields
TRUST_ALL
public static final List<Certificate> TRUST_ALL
Trust any Installer to provide checksums for the package.
TRUST_NONE
public static final List<Certificate> TRUST_NONE
Don't trust any Installer to provide checksums for the package. This effectively disables optimized Installer-enforced checksums.
Public constructors
PackageManager
public PackageManager ()
      This constructor is deprecated.
    Do not instantiate or subclass - obtain an instance from
 Context.getPackageManager
  
Public methods
addPackageToPreferred
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, ResolveInfoFlags) or queryIntentActivities(Intent, ResolveInfoFlags). 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 benull. | 
addPermission
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 benull. | 
| 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:
addPermissionAsync
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 benull. | 
| Returns | |
|---|---|
| boolean | |
addPreferredActivity
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, ResolveInfoFlags) or queryIntentActivities(Intent, ResolveInfoFlags). 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() 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 benull. | 
| 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 benull. | 
| activity | ComponentName: The component name of the activity that is to be
 preferred.
 This value cannot benull. | 
addWhitelistedRestrictedPermission
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 restricted or 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 four whitelists:
 
- one for cases where the system permission policy whitelists a permission
 This list corresponds to the FLAG_PERMISSION_WHITELIST_SYSTEMflag. 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_UPGRADEflag. 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_INSTALLERflag. 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.
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
| Parameters | |
|---|---|
| packageName | String: The app for which to get whitelisted permissions.
 This value cannot benull. | 
| permName | String: The whitelisted permission to add.
 This value cannot benull. | 
| whitelistFlags | int: The whitelists to which to add. Passing multiple flags
 updates all specified whitelists.
 Value is either0or a combination ofFLAG_PERMISSION_WHITELIST_SYSTEM,FLAG_PERMISSION_WHITELIST_INSTALLER, andFLAG_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. | 
canPackageQuery
public boolean canPackageQuery (String sourcePackageName, String targetPackageName)
Returns true if the source package is able to query for details about the
 target package. Applications that share details about other applications should
 use this API to determine if those details should be withheld from callers that
 do not otherwise have visibility of them.
 
 Note: The caller must be able to query for details about the source and target
 package. A NameNotFoundException is thrown if it isn't.
| Parameters | |
|---|---|
| sourcePackageName | String: The source package that would receive details about the
                          target package.
 This value cannot benull. | 
| targetPackageName | String: The target package whose details would be shared with the
                          source package.
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | trueif the source package is able to query for details about the
 target package. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if either a given package can not be found on the system, or if the caller is not able to query for details about the source or target package. | 
canPackageQuery
public boolean[] canPackageQuery (String sourcePackageName, String[] targetPackageNames)
Same as canPackageQuery(java.lang.String, java.lang.String) but accepts an array of target packages to
 be queried.
| Parameters | |
|---|---|
| sourcePackageName | String: The source package that would receive details about the
                          target package.
 This value cannot benull. | 
| targetPackageNames | String: An array of target packages whose details would be shared with the
                           source package.
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean[] | An array of booleans where each member specifies whether the source package is able
 to query for details about the target package given by the corresponding value at the same
 index in the array of target packages.
 This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if either a given package can not be found on the system, or if the caller is not able to query for details about the source or target packages. | 
canRequestPackageInstalls
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. | 
canonicalToCurrentPackageNames
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 benull. | 
| Returns | |
|---|---|
| String[] | Returns an array of the same size as the original, containing the current name for each package. | 
checkPermission
public abstract int checkPermission (String permName, String packageName)
Check whether a particular package has been granted a particular permission.
 Note: This API returns the underlying permission state
 as-is and is mostly intended for permission managing system apps. To
 perform an access check for a certain app, please use the
 Context.checkPermission APIs instead.
| Parameters | |
|---|---|
| permName | String: The name of the permission you are checking for.
 This value cannot benull. | 
| packageName | String: The name of the package you are checking against.
 This value cannot benull. | 
| 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, orPERMISSION_DENIED | 
See also:
checkSignatures
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 benull. | 
| packageName2 | String: Second package name whose signature will be compared.
 This value cannot benull. | 
| 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_MATCHorSIGNATURE_UNKNOWN_PACKAGE).
 Value isSIGNATURE_MATCH,SIGNATURE_NEITHER_SIGNED,SIGNATURE_FIRST_NOT_SIGNED,SIGNATURE_SECOND_NOT_SIGNED,SIGNATURE_NO_MATCH, orSIGNATURE_UNKNOWN_PACKAGE | 
See also:
checkSignatures
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_MATCHorSIGNATURE_UNKNOWN_PACKAGE).
 Value isSIGNATURE_MATCH,SIGNATURE_NEITHER_SIGNED,SIGNATURE_FIRST_NOT_SIGNED,SIGNATURE_SECOND_NOT_SIGNED,SIGNATURE_NO_MATCH, orSIGNATURE_UNKNOWN_PACKAGE | 
See also:
clearInstantAppCookie
public abstract void clearInstantAppCookie ()
Clears the instant application cookie for the calling app.
clearPackagePreferredActivities
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, ResolveInfoFlags) or queryIntentActivities(Intent, ResolveInfoFlags). 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 benull. | 
currentToCanonicalPackageNames
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 benull. | 
| Returns | |
|---|---|
| String[] | Returns an array of the same size as the original, containing the canonical name for each package. | 
extendVerificationTimeout
public abstract void extendVerificationTimeout (int id, 
                int verificationCodeAtTimeout, 
                long millisecondsToDelay)Allows a package listening to the
 broadcast 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 thePackageManager.EXTRA_VERIFICATION_IDIntent extra. | 
| verificationCodeAtTimeout | int: eitherPackageManager.VERIFICATION_ALLOWorPackageManager.VERIFICATION_REJECT. IfverificationCodeAtTimeoutis neitherPackageManager.VERIFICATION_ALLOWorPackageManager.VERIFICATION_REJECT, thenverificationCodeAtTimeoutwill default toPackageManager.VERIFICATION_REJECT. | 
| millisecondsToDelay | long: the amount of time requested for the timeout.
            Must be positive and less thanPackageManager.MAXIMUM_VERIFICATION_TIMEOUT. IfmillisecondsToDelayis out of bounds,millisecondsToDelaywill be set to the closest in
            bounds value; namely, 0 orPackageManager.MAXIMUM_VERIFICATION_TIMEOUT. | 
| Throws | |
|---|---|
| SecurityException | if the caller does not have the PACKAGE_VERIFICATION_AGENT permission. | 
getActivityBanner
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 benull. | 
| 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
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 benull. | 
| 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:
getActivityIcon
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 benull. | 
| 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
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 benull. | 
| 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:
getActivityInfo
public abstract ActivityInfo getActivityInfo (ComponentName component, int flags)
Retrieve all of the information we know about a particular activity
 class.
 Use getActivityInfo(android.content.ComponentName, android.content.pm.PackageManager.ComponentInfoFlags) when long flags are needed.
| 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 benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ActivityInfo | An ActivityInfocontaining information about the
         activity.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getActivityInfo
public ActivityInfo getActivityInfo (ComponentName component, PackageManager.ComponentInfoFlags flags)
See getActivityInfo(android.content.ComponentName, int).
| Parameters | |
|---|---|
| component | ComponentName: This value cannot benull. | 
| flags | PackageManager.ComponentInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ActivityInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getActivityLogo
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 benull. | 
| 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
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 benull. | 
| 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:
getAllPermissionGroups
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 either0orGET_META_DATA | 
| Returns | |
|---|---|
| List<PermissionGroupInfo> | Returns a list of PermissionGroupInfocontaining
         information about all of the known permission groups.
 This value cannot benull. | 
getApplicationBanner
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 benull. | 
| 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
public abstract Drawable getApplicationBanner (ApplicationInfo info)
Retrieve the banner associated with an application.
| Parameters | |
|---|---|
| info | ApplicationInfo: Information about application being queried.
 This value cannot benull. | 
| Returns | |
|---|---|
| Drawable | Returns the image of the banner or null if the application has no banner specified. | 
See also:
getApplicationEnabledSetting
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 benull. | 
| 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, orCOMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED | 
| Throws | |
|---|---|
| IllegalArgumentException | if the named package does not exist. | 
getApplicationIcon
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 benull. | 
| Returns | |
|---|---|
| Drawable | Returns the image of the icon, or the default application icon if it could not be found. | 
See also:
getApplicationIcon
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 benull. | 
| 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:
getApplicationInfo
public ApplicationInfo getApplicationInfo (String packageName, PackageManager.ApplicationInfoFlags flags)
See getApplicationInfo(java.lang.String, int).
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| flags | PackageManager.ApplicationInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ApplicationInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getApplicationInfo
public abstract ApplicationInfo getApplicationInfo (String packageName, int flags)
Retrieve all of the information we know about a particular
 package/application.
 Use getApplicationInfo(java.lang.String, android.content.pm.PackageManager.ApplicationInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| packageName | String: The full name (i.e. com.google.apps.contacts) of an
            application.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ApplicationInfo | An ApplicationInfocontaining information about the
         package. If flagMATCH_UNINSTALLED_PACKAGESis 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 withDELETE_KEEP_DATAflag set).
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getApplicationLabel
public abstract CharSequence getApplicationLabel (ApplicationInfo info)
Return the label to use for this application.
| Parameters | |
|---|---|
| info | ApplicationInfo: TheApplicationInfoof the application to get the label of.
 This value cannot benull. | 
| Returns | |
|---|---|
| CharSequence | Returns a CharSequencecontaining the label associated with
 this application, or its name the  item does not have a label.
 This value cannot benull. | 
getApplicationLogo
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 benull. | 
| 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
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 benull. | 
| Returns | |
|---|---|
| Drawable | Returns the image of the logo, or null if no logo is specified by the application. | 
See also:
getArchivedPackage
public ArchivedPackageInfo getArchivedPackage (String packageName)
Return archived package info for the package or null if the package is not installed.
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| Returns | |
|---|---|
| ArchivedPackageInfo | |
getBackgroundPermissionOptionLabel
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
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:
getComponentEnabledSetting
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 benull. | 
| 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, orCOMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED | 
getDefaultActivityIcon
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
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. | 
| 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. | 
| Returns | |
|---|---|
| Drawable | Returns a Drawable holding the requested image. Returns null if an image could not be found for any reason. | 
getGroupOfPlatformPermission
public void getGroupOfPlatformPermission (String permissionName, Executor executor, Consumer<String> callback)
Get the platform-defined permission group of a particular permission, if the permission is a platform-defined permission.
| Parameters | |
|---|---|
| permissionName | String: the permission whose group is desired
 This value cannot benull. | 
| executor | Executor: theExecutoron which to invoke the callback
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | Consumer: the callback which will receive the name of the permission group this
                 permission belongs to, ornullif it has no group, is not a
                 platform-defined permission, or there was an exception | 
getInstallSourceInfo
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 benull. | 
| Returns | |
|---|---|
| InstallSourceInfo | |
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if the given package name is not available to the caller. | 
getInstalledApplications
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.
 Use getInstalledApplications(android.content.pm.PackageManager.ApplicationInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| flags | int: Additional option flags to modify the data returned. | 
| 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_PACKAGESis 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 withDELETE_KEEP_DATAflag set).
 This value cannot benull. | 
getInstalledApplications
public List<ApplicationInfo> getInstalledApplications (PackageManager.ApplicationInfoFlags flags)
See getInstalledApplications(int)
| Parameters | |
|---|---|
| flags | PackageManager.ApplicationInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ApplicationInfo> | This value cannot be null. | 
getInstalledModules
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 either0orMATCH_ALL | 
| Returns | |
|---|---|
| List<ModuleInfo> | A ListofModuleInfoobjects, 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 benull. | 
getInstalledPackages
public abstract List<PackageInfo> getInstalledPackages (int flags)
Return a List of all packages that are installed for the current user.
 Use getInstalledPackages(android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| flags | int: Additional option flags to modify the data returned. | 
| 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_PACKAGESis 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 withDELETE_KEEP_DATAflag set).
 This value cannot benull. | 
getInstalledPackages
public List<PackageInfo> getInstalledPackages (PackageManager.PackageInfoFlags flags)
See getInstalledPackages(int).
| Parameters | |
|---|---|
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageInfo> | This value cannot be null. | 
getInstallerPackageName
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 benull. | 
| Returns | |
|---|---|
| String | This value may be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the given package name is not installed | 
getInstantAppCookie
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. | 
getInstantAppCookieMaxBytes
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. | 
getInstrumentationInfo
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 benull. | 
| flags | int: Additional option flags to modify the data returned.
 Value is either0orGET_META_DATA | 
| Returns | |
|---|---|
| InstrumentationInfo | An InstrumentationInfoobject containing information
         about the instrumentation.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getLaunchIntentForPackage
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.
 
Consider using getLaunchIntentSenderForPackage(java.lang.String) if
 the caller is not allowed to query for the packageName.
| Parameters | |
|---|---|
| packageName | String: The name of the package to inspect.
 This value cannot benull. | 
| Returns | |
|---|---|
| Intent | A fully-qualified Intentthat can be used to launch the
 main activity in the package. Returnsnullif the package
 does not contain such an activity, or if packageName is not
 recognized. | 
See also:
getLaunchIntentSenderForPackage
public IntentSender getLaunchIntentSenderForPackage (String packageName)
Returns an IntentSender that can be used 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 is the same with
 getLaunchIntentForPackage(java.lang.String). Instead of returning the Intent, it
 returns the IntentSender which is not restricted by the package visibility.
 
The caller can invoke
 IntentSender.sendIntent(Context, int, Intent, IntentSender.OnFinished, Handler)
 to launch the activity. An IntentSender.SendIntentException is thrown if the
 package does not contain such an activity, or if packageName is not recognized.
| Parameters | |
|---|---|
| packageName | String: The name of the package to inspect.
 This value cannot benull. | 
| Returns | |
|---|---|
| IntentSender | Returns a IntentSenderto launch the activity.
 This value cannot benull. | 
See also:
getLeanbackLaunchIntentForPackage
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 benull. | 
| 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
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 benull. | 
| 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
public ModuleInfo getModuleInfo (String packageName, int flags)
Retrieve information for a particular module.
| Parameters | |
|---|---|
| packageName | String: The name of the module.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned.
 Value is either0or android.content.pm.PackageManager.MODULE_APEX_NAME | 
| Returns | |
|---|---|
| ModuleInfo | A ModuleInfoobject containing information about the
         module.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a module with the given name cannot be found on the system. | 
getNameForUid
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. | 
getPackageArchiveInfo
public PackageInfo getPackageArchiveInfo (String archiveFilePath, int flags)
Retrieve overall information about an application package defined in a
 package archive file
 Use getPackageArchiveInfo(java.lang.String, android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| archiveFilePath | String: The path to the archive file
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| PackageInfo | A PackageInfo object containing information about the package archive. If the package could not be parsed, returns null. | 
getPackageArchiveInfo
public PackageInfo getPackageArchiveInfo (String archiveFilePath, PackageManager.PackageInfoFlags flags)
See getPackageArchiveInfo(java.lang.String, int).
| Parameters | |
|---|---|
| archiveFilePath | String: This value cannot benull. | 
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| PackageInfo | This value may be null. | 
getPackageGids
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 (i.e. com.google.apps.contacts) of the
            desired package.
 This value cannot benull. | 
| Returns | |
|---|---|
| int[] | Returns an int array of the assigned GIDs, or null if there are none. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if no such package is available to the caller. | 
getPackageGids
public abstract int[] getPackageGids (String packageName, int flags)
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.
 Use getPackageGids(java.lang.String, android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| packageName | String: The full name (i.e. com.google.apps.contacts) of the
            desired package.
 This value cannot benull. | 
| flags | int | 
| Returns | |
|---|---|
| int[] | Returns an int array of the assigned gids, or null if there are none. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if no such package is available to the caller. | 
getPackageGids
public int[] getPackageGids (String packageName, PackageManager.PackageInfoFlags flags)
See getPackageGids(java.lang.String, int).
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| int[] | This value may be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getPackageInfo
public abstract PackageInfo getPackageInfo (String packageName, int flags)
Retrieve overall information about an application package that is
 installed on the system.
 Use getPackageInfo(java.lang.String, android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| packageName | String: The full name (i.e. com.google.apps.contacts) of the
            desired package.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| PackageInfo | A PackageInfo object containing information about the package. If
         flag MATCH_UNINSTALLED_PACKAGESis set and if the package
         is not found in the list of installed applications, 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 withDELETE_KEEP_DATAflag set). | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if no such package is available to the caller. | 
getPackageInfo
public PackageInfo getPackageInfo (String packageName, PackageManager.PackageInfoFlags flags)
See getPackageInfo(java.lang.String, int)
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| PackageInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getPackageInfo
public PackageInfo getPackageInfo (VersionedPackage versionedPackage, PackageManager.PackageInfoFlags flags)
See getPackageInfo(android.content.pm.VersionedPackage, int)
| Parameters | |
|---|---|
| versionedPackage | VersionedPackage: This value cannot benull. | 
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| PackageInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getPackageInfo
public abstract PackageInfo getPackageInfo (VersionedPackage versionedPackage, int flags)
Retrieve overall information about an application package that is
 installed on the system. This method can be used for retrieving
 information about packages for which multiple versions can be installed
 at the time. Currently only packages hosting static shared libraries can
 have multiple installed versions. The method can also be used to get info
 for a package that has a single version installed by passing
 VERSION_CODE_HIGHEST in the VersionedPackage
 constructor.
 Use getPackageInfo(android.content.pm.VersionedPackage, android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| versionedPackage | VersionedPackage: The versioned package for which to query.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| PackageInfo | A PackageInfo object containing information about the package. If
         flag MATCH_UNINSTALLED_PACKAGESis set and if the package
         is not found in the list of installed applications, 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 withDELETE_KEEP_DATAflag set). | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if no such package is available to the caller. | 
getPackageInstaller
public abstract PackageInstaller getPackageInstaller ()
Return interface that offers the ability to install, upgrade, and remove applications on the device.
| Returns | |
|---|---|
| PackageInstaller | This value cannot be null. | 
getPackageUid
public int getPackageUid (String packageName, PackageManager.PackageInfoFlags flags)
See getPackageUid(java.lang.String, int).
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| int | |
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getPackageUid
public abstract int getPackageUid (String packageName, int flags)
Return the UID associated with the given package name.
 Note that the same package will have different UIDs under different
 UserHandle on the same device.
 Use getPackageUid(java.lang.String, android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| packageName | String: The full name (i.e. com.google.apps.contacts) of the
            desired package.
 This value cannot benull. | 
| flags | int | 
| Returns | |
|---|---|
| int | Returns an integer UID who owns the given package name. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if no such package is available to the caller. | 
getPackagesForUid
public abstract String[] getPackagesForUid (int uid)
Retrieve the names of all packages that are associated with a particular user id. In most cases, this will be a single package name, the package that has been assigned that user id. Where there are multiple packages sharing the same user id through the "sharedUserId" mechanism, all packages with that id will be returned.
| Parameters | |
|---|---|
| uid | int: The user id for which you would like to retrieve the
 associated packages. | 
| Returns | |
|---|---|
| String[] | Returns an array of one or more packages assigned to the user id, or null if there are no known packages with the given id. | 
getPackagesHoldingPermissions
public abstract List<PackageInfo> getPackagesHoldingPermissions (String[] permissions, int flags)
Return a List of all installed packages that are currently holding any of
 the given permissions.
 Use getPackagesHoldingPermissions(java.lang.String[], android.content.pm.PackageManager.PackageInfoFlags) when long flags are
 needed.
| Parameters | |
|---|---|
| permissions | String: This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| List<PackageInfo> | A List of PackageInfo objects, one for each installed package
         that holds any of the permissions that were provided, containing
         information about the package. If no installed packages hold any
         of the permissions, an empty list is returned. If flag MATCH_UNINSTALLED_PACKAGESis 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 withDELETE_KEEP_DATAflag set).
 This value cannot benull. | 
getPackagesHoldingPermissions
public List<PackageInfo> getPackagesHoldingPermissions (String[] permissions, PackageManager.PackageInfoFlags flags)
See getPackagesHoldingPermissions(java.lang.String[], int).
| Parameters | |
|---|---|
| permissions | String: This value cannot benull. | 
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageInfo> | This value cannot be null. | 
getPermissionGroupInfo
public abstract PermissionGroupInfo getPermissionGroupInfo (String groupName, int flags)
Retrieve all of the information we know about a particular group of permissions.
| Parameters | |
|---|---|
| groupName | String: The fully qualified name (i.e.
            com.google.permission_group.APPS) of the permission you are
            interested in.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned.
 Value is either0orGET_META_DATA | 
| Returns | |
|---|---|
| PermissionGroupInfo | Returns a PermissionGroupInfocontaining information
         about the permission.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getPermissionInfo
public abstract PermissionInfo getPermissionInfo (String permName, int flags)
Retrieve all of the information we know about a particular permission.
| Parameters | |
|---|---|
| permName | String: The fully qualified name (i.e. com.google.permission.LOGIN)
            of the permission you are interested in.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned.
 Value is either0orGET_META_DATA | 
| Returns | |
|---|---|
| PermissionInfo | Returns a PermissionInfocontaining information about the
         permission. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getPlatformPermissionsForGroup
public void getPlatformPermissionsForGroup (String permissionGroupName, Executor executor, Consumer<List<String>> callback)
Get the platform-defined permissions which belong to a particular permission group.
| Parameters | |
|---|---|
| permissionGroupName | String: the permission group whose permissions are desired
 This value cannot benull. | 
| executor | Executor: theExecutoron which to invoke the callback
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | Consumer: the callback which will receive a list of the platform-defined permissions in
                 the group, or empty if the group is not a valid platform-defined permission
                 group, or there was an exception
 This value cannot benull. | 
getPreferredActivities
public abstract int getPreferredActivities (List<IntentFilter> outFilters, List<ComponentName> outActivities, 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, ResolveInfoFlags) or queryIntentActivities(Intent, ResolveInfoFlags). To configure
 an app to be responsible for a particular role and to check current role
 holders, see RoleManager.
  
Retrieve all preferred activities, previously added with
 addPreferredActivity(IntentFilter, int, ComponentName, ComponentName), that are
 currently registered with the system.
| Parameters | |
|---|---|
| outFilters | List: A required list in which to place the filters of all of the
 preferred activities.
 This value cannot benull. | 
| outActivities | List: A required list in which to place the component names of
 all of the preferred activities.
 This value cannot benull. | 
| packageName | String: An optional package in which you would like to limit
 the list.  If null, all activities will be returned; if non-null, only
 those activities in the given package are returned. | 
| Returns | |
|---|---|
| int | Returns the total number of registered preferred activities (the number of distinct IntentFilter records, not the number of unique activity components) that were found. | 
getPreferredPackages
public abstract List<PackageInfo> getPreferredPackages (int flags)
      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, ResolveInfoFlags) or queryIntentActivities(Intent, ResolveInfoFlags). To configure
 an app to be responsible for a particular role and to check current role
 holders, see RoleManager.
  
Retrieve the list of all currently configured preferred packages. The first package on the list is the most preferred, the last is the least preferred.
| Parameters | |
|---|---|
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| List<PackageInfo> | A List of PackageInfo objects, one for each preferred
         application, in order of preference.
 This value cannot be null. | 
getProperty
public PackageManager.Property getProperty (String propertyName, String packageName)
Returns the property defined in the given package's <application> tag.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| packageName | String: This value cannot benull. | 
| Returns | |
|---|---|
| PackageManager.Property | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if either the given package is not installed or if the given property is not defined within the <application> tag. | 
getProperty
public PackageManager.Property getProperty (String propertyName, ComponentName component)
Returns the property defined in the given component declaration.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| component | ComponentName: This value cannot benull. | 
| Returns | |
|---|---|
| PackageManager.Property | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if either the given component does not exist or if the given property is not defined within the component declaration. | 
getProviderInfo
public abstract ProviderInfo getProviderInfo (ComponentName component, int flags)
Retrieve all of the information we know about a particular content
 provider class.
 Use getProviderInfo(android.content.ComponentName, android.content.pm.PackageManager.ComponentInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| component | ComponentName: The full component name (i.e.
            com.google.providers.media/com.google.providers.media.
            MediaProvider) of a ContentProvider class.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ProviderInfo | A ProviderInfoobject containing information about the
         provider.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getProviderInfo
public ProviderInfo getProviderInfo (ComponentName component, PackageManager.ComponentInfoFlags flags)
See getProviderInfo(android.content.ComponentName, int).
| Parameters | |
|---|---|
| component | ComponentName: This value cannot benull. | 
| flags | PackageManager.ComponentInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ProviderInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getReceiverInfo
public abstract ActivityInfo getReceiverInfo (ComponentName component, int flags)
Retrieve all of the information we know about a particular receiver
 class.
 Use getReceiverInfo(android.content.ComponentName, android.content.pm.PackageManager.ComponentInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| component | ComponentName: The full component name (i.e.
            com.google.apps.calendar/com.google.apps.calendar.
            CalendarAlarm) of a Receiver class.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ActivityInfo | An ActivityInfocontaining information about the
         receiver.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getReceiverInfo
public ActivityInfo getReceiverInfo (ComponentName component, PackageManager.ComponentInfoFlags flags)
See getReceiverInfo(android.content.ComponentName, int).
| Parameters | |
|---|---|
| component | ComponentName: This value cannot benull. | 
| flags | PackageManager.ComponentInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ActivityInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getResourcesForActivity
public abstract Resources getResourcesForActivity (ComponentName activityName)
Retrieve the resources associated with an activity. Given the full name of an activity, retrieves the information about it and calls getResources() to return its application's resources. If the activity cannot be found, NameNotFoundException is thrown.
| Parameters | |
|---|---|
| activityName | ComponentName: Name of the activity whose resources are to be
                     retrieved.
 This value cannot benull. | 
| Returns | |
|---|---|
| Resources | Returns the application's Resources.
 This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | Thrown if the resources for the given application could not be loaded. | 
getResourcesForApplication
public abstract Resources getResourcesForApplication (ApplicationInfo app)
Retrieve the resources for an application. Throws NameNotFoundException if the package is no longer installed.
| Parameters | |
|---|---|
| app | ApplicationInfo: Information about the desired application.
 This value cannot benull. | 
| Returns | |
|---|---|
| Resources | Returns the application's Resources.
 This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | Thrown if the resources for the given application could not be loaded (most likely because it was uninstalled). | 
getResourcesForApplication
public abstract Resources getResourcesForApplication (String packageName)
Retrieve the resources associated with an application. Given the full package name of an application, retrieves the information about it and calls getResources() to return its application's resources. If the appPackageName cannot be found, NameNotFoundException is thrown.
| Parameters | |
|---|---|
| packageName | String: Package name of the application whose resources
                       are to be retrieved.
 This value cannot benull. | 
| Returns | |
|---|---|
| Resources | Returns the application's Resources.
 This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | Thrown if the resources for the given application could not be loaded. | 
getResourcesForApplication
public Resources getResourcesForApplication (ApplicationInfo app, Configuration configuration)
Retrieve the resources for an application for the provided configuration.
| Parameters | |
|---|---|
| app | ApplicationInfo: Information about the desired application.
 This value cannot benull. | 
| configuration | Configuration: Overridden configuration when loading the Resources
 This value may benull. | 
| Returns | |
|---|---|
| Resources | Returns the application's Resources.
 This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | Thrown if the resources for the given application could not be loaded (most likely because it was uninstalled). | 
getServiceInfo
public ServiceInfo getServiceInfo (ComponentName component, PackageManager.ComponentInfoFlags flags)
See getServiceInfo(android.content.ComponentName, int).
| Parameters | |
|---|---|
| component | ComponentName: This value cannot benull. | 
| flags | PackageManager.ComponentInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ServiceInfo | This value cannot be null. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | |
getServiceInfo
public abstract ServiceInfo getServiceInfo (ComponentName component, int flags)
Retrieve all of the information we know about a particular service class.
 Use getServiceInfo(android.content.ComponentName, android.content.pm.PackageManager.ComponentInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| component | ComponentName: The full component name (i.e.
            com.google.apps.media/com.google.apps.media.
            BackgroundPlayback) of a Service class.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ServiceInfo | A ServiceInfoobject containing information about the
         service.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if the component cannot be found on the system. | 
getSharedLibraries
public List<SharedLibraryInfo> getSharedLibraries (PackageManager.PackageInfoFlags flags)
| Parameters | |
|---|---|
| flags | PackageManager.PackageInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<SharedLibraryInfo> | This value cannot be null. | 
getSharedLibraries
public abstract List<SharedLibraryInfo> getSharedLibraries (int flags)
Get a list of shared libraries on the device.
 Use getSharedLibraries(android.content.pm.PackageManager.PackageInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| flags | int: To filter the libraries to return. | 
| Returns | |
|---|---|
| List<SharedLibraryInfo> | The shared library list.
 This value cannot be null. | 
See also:
getSuspendedPackageAppExtras
public Bundle getSuspendedPackageAppExtras ()
Returns a Bundle of extras that was meant to be sent to the calling app when it was
 suspended. An app with the permission android.permission.SUSPEND_APPS can supply this
 to the system at the time of suspending an app.
 
This is the same Bundle that is sent along with the broadcast
 Intent.ACTION_MY_PACKAGE_SUSPENDED, whenever the app is suspended. The contents of
 this Bundle are a contract between the suspended app and the suspending app.
 
Note: These extras are optional, so if no extras were supplied to the system, this method
 will return null, even when the calling app has been suspended.
| Returns | |
|---|---|
| Bundle | A Bundlecontaining the extras for the app, ornullif the
 package is not currently suspended. | 
getSyntheticAppDetailsActivityEnabled
public boolean getSyntheticAppDetailsActivityEnabled (String packageName)
Return whether a synthetic app details activity will be generated if the app has no enabled launcher activity.
| Parameters | |
|---|---|
| packageName | String: The package name of the app
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | Returns the enabled state for the synthetic app details activity. | 
getSystemAvailableFeatures
public abstract FeatureInfo[] getSystemAvailableFeatures ()
Get a list of features that are available on the system.
| Returns | |
|---|---|
| FeatureInfo[] | An array of FeatureInfo classes describing the features that are available on the system, or null if there are none(!!). | 
getSystemSharedLibraryNames
public abstract String[] getSystemSharedLibraryNames ()
Get a list of shared libraries that are available on the system.
| Returns | |
|---|---|
| String[] | An array of shared library names that are available on the system, or null if none are installed. | 
getTargetSdkVersion
public int getTargetSdkVersion (String packageName)
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| Returns | |
|---|---|
| int | The target SDK version for the given package name. Value is 0 or greater | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
getText
public abstract CharSequence getText (String packageName, int resid, ApplicationInfo appInfo)
Retrieve text 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
 labels and other text.
| Parameters | |
|---|---|
| packageName | String: The name of the package that this text is coming from.
 Cannot be null. | 
| resid | int: The resource identifier of the desired text.  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. | 
| Returns | |
|---|---|
| CharSequence | Returns a CharSequence holding the requested text. Returns null if the text could not be found for any reason. | 
getUserBadgedDrawableForDensity
public abstract Drawable getUserBadgedDrawableForDensity (Drawable drawable, UserHandle user, Rect badgeLocation, int badgeDensity)
If the target user is a managed profile of the calling user or the caller is itself a managed profile, then this returns a badged copy of the given drawable allowing the user to distinguish it from the original drawable. The caller can specify the location in the bounds of the drawable to be badged where the badge should be applied as well as the density of the badge to be used.
 If the original drawable is a BitmapDrawable and the backing bitmap is
 mutable as per Bitmap.isMutable(), the badging
 is performed in place and the original drawable is returned.
 
| Parameters | |
|---|---|
| drawable | Drawable: The drawable to badge.
 This value cannot benull. | 
| user | UserHandle: The target user.
 This value cannot benull. | 
| badgeLocation | Rect: Where in the bounds of the badged drawable to place
         the badge. If it'snull, the badge is applied on top of the entire
         drawable being badged. | 
| badgeDensity | int: The optional desired density for the badge as perDisplayMetrics.densityDpi. If it's not positive,
         the density of the display is used. | 
| Returns | |
|---|---|
| Drawable | A drawable that combines the original drawable and a badge as
         determined by the system.
 This value cannot be null. | 
getUserBadgedIcon
public abstract Drawable getUserBadgedIcon (Drawable drawable, UserHandle user)
If the target user is a managed profile, then this returns a badged copy of the given icon
 to be able to distinguish it from the original icon. For badging an arbitrary drawable use
 getUserBadgedDrawableForDensity(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int).
 
 If the original drawable is a BitmapDrawable and the backing bitmap is
 mutable as per Bitmap.isMutable(), the badging
 is performed in place and the original drawable is returned.
 
| Parameters | |
|---|---|
| drawable | Drawable: The drawable to badge.
 This value cannot benull. | 
| user | UserHandle: The target user.
 This value cannot benull. | 
| Returns | |
|---|---|
| Drawable | A drawable that combines the original icon and a badge as
         determined by the system.
 This value cannot be null. | 
getUserBadgedLabel
public abstract CharSequence getUserBadgedLabel (CharSequence label, UserHandle user)
If the target user is a managed profile of the calling user or the caller is itself a managed profile, then this returns a copy of the label with badging for accessibility services like talkback. E.g. passing in "Email" and it might return "Work Email" for Email in the work profile.
| Parameters | |
|---|---|
| label | CharSequence: The label to change.
 This value cannot benull. | 
| user | UserHandle: The target user.
 This value cannot benull. | 
| Returns | |
|---|---|
| CharSequence | A label that combines the original label and a badge as
         determined by the system.
 This value cannot be null. | 
getVerifiedSigningInfo
public static SigningInfo getVerifiedSigningInfo (String path, int minAppSigningSchemeVersion)
Verifies and returns the
 app signing
 information of the file at the given path. This operation takes a few milliseconds.
 Unlike getPackageArchiveInfo(java.lang.String, android.content.pm.PackageManager.PackageInfoFlags) with GET_SIGNING_CERTIFICATES, this method does not require the file to be a package archive
 file.
| Parameters | |
|---|---|
| path | String: This value cannot benull. | 
| minAppSigningSchemeVersion | int: Value isSigningInfo.VERSION_JAR,SigningInfo.VERSION_SIGNING_BLOCK_V2,SigningInfo.VERSION_SIGNING_BLOCK_V3, orSigningInfo.VERSION_SIGNING_BLOCK_V4 | 
| Returns | |
|---|---|
| SigningInfo | This value cannot be null. | 
| Throws | |
|---|---|
| SigningInfoException | if the verification fails | 
getWhitelistedRestrictedPermissions
public Set<String> getWhitelistedRestrictedPermissions (String packageName, int whitelistFlag)
Gets the restricted permissions that have been whitelisted and the app is allowed to have them granted in their full form.
 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 restricted or 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 four allowlists:
 
- one for cases where the system permission policy whitelists a permission
 This list corresponds to theFLAG_PERMISSION_WHITELIST_SYSTEMflag. Can only be accessed 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_UPGRADEflag. Can be accessed by pre-installed holders of a dedicated permission or the installer on record.
- one for cases where the installer of the package whitelists a permission.
 This list corresponds to the FLAG_PERMISSION_WHITELIST_INSTALLERflag. Can be accessed by pre-installed holders of a dedicated permission or the installer on record.
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
| Parameters | |
|---|---|
| packageName | String: The app for which to get whitelisted permissions.
 This value cannot benull. | 
| whitelistFlag | int: The flag to determine which whitelist to query. Only one flag
 can be passed.s
 Value is either0or a combination ofFLAG_PERMISSION_WHITELIST_SYSTEM,FLAG_PERMISSION_WHITELIST_INSTALLER, andFLAG_PERMISSION_WHITELIST_UPGRADE | 
| Returns | |
|---|---|
| Set<String> | The whitelisted permissions that are on any of the whitelists you query for.
 This value cannot be null. | 
| Throws | |
|---|---|
| SecurityException | if you try to access a whitelist that you have no access to. | 
getXml
public abstract XmlResourceParser getXml (String packageName, int resid, ApplicationInfo appInfo)
Retrieve an XML file from a package. This is a low-level API used to retrieve XML meta data.
| Parameters | |
|---|---|
| packageName | String: The name of the package that this xml is coming from.
 Cannot be null. | 
| resid | int: The resource identifier of the desired xml.  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. | 
| Returns | |
|---|---|
| XmlResourceParser | Returns an XmlPullParser allowing you to parse out the XML data. Returns null if the xml resource could not be found for any reason. | 
hasSigningCertificate
public boolean hasSigningCertificate (int uid, 
                byte[] certificate, 
                int type)Searches the set of signing certificates by which the package(s) for the given uid has proven
 to have been signed.  For multiple packages sharing the same uid, this will return the
 signing certificates found in the signing history of the "newest" package, where "newest"
 indicates the package with the newest signing certificate in the shared uid group.  This
 method should be used instead of getPackageInfo with GET_SIGNATURES
 since it takes into account the possibility of signing certificate rotation, except in the
 case of packages that are signed by multiple certificates, for which signing certificate
 rotation is not supported. This method is analogous to using getPackagesForUid
 followed by getPackageInfo with GET_SIGNING_CERTIFICATES, selecting the
 PackageInfo of the newest-signed bpackage , and finally searching through the
 resulting signingInfo field to see if the desired certificate is there.
| Parameters | |
|---|---|
| uid | int: uid whose signing certificates to check | 
| certificate | byte: signing certificate for which to search
 This value cannot benull. | 
| type | int: representation of thecertificateValue isCERT_INPUT_RAW_X509, orCERT_INPUT_SHA256 | 
| Returns | |
|---|---|
| boolean | true if this package was or is signed by exactly the certificate certificate | 
hasSigningCertificate
public boolean hasSigningCertificate (String packageName, byte[] certificate, int type)
Searches the set of signing certificates by which the given package has proven to have been
 signed.  This should be used instead of getPackageInfo with GET_SIGNATURES
 since it takes into account the possibility of signing certificate rotation, except in the
 case of packages that are signed by multiple certificates, for which signing certificate
 rotation is not supported.  This method is analogous to using getPackageInfo with
 GET_SIGNING_CERTIFICATES and then searching through the resulting signingInfo field to see if the desired certificate is present.
| Parameters | |
|---|---|
| packageName | String: package whose signing certificates to check
 This value cannot benull. | 
| certificate | byte: signing certificate for which to search
 This value cannot benull. | 
| type | int: representation of thecertificateValue isCERT_INPUT_RAW_X509, orCERT_INPUT_SHA256 | 
| Returns | |
|---|---|
| boolean | true if this package was or is signed by exactly the certificate certificate | 
hasSystemFeature
public abstract boolean hasSystemFeature (String featureName)
Check whether the given feature name is one of the available features as
 returned by getSystemAvailableFeatures(). This tests for the
 presence of any version of the given feature name; use
 hasSystemFeature(java.lang.String, int) to check for a minimum version.
| Parameters | |
|---|---|
| featureName | String: This value cannot benull. | 
| Returns | |
|---|---|
| boolean | Returns true if the devices supports the feature, else false. | 
hasSystemFeature
public abstract boolean hasSystemFeature (String featureName, int version)
Check whether the given feature name and version is one of the available
 features as returned by getSystemAvailableFeatures(). Since
 features are defined to always be backwards compatible, this returns true
 if the available feature version is greater than or equal to the
 requested version.
| Parameters | |
|---|---|
| featureName | String: This value cannot benull. | 
| version | int | 
| Returns | |
|---|---|
| boolean | Returns true if the devices supports the feature, else false. | 
isAppArchivable
public boolean isAppArchivable (String packageName)
Returns true if an app is archivable.
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| Returns | |
|---|---|
| boolean | |
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if the given package name is not available to the caller. | 
isAutoRevokeWhitelisted
public boolean isAutoRevokeWhitelisted (String packageName)
Checks whether an application is exempt from having its permissions be automatically revoked
 when the app is unused for an extended period of time.
 Only the installer on record that installed the given package, or a holder of
 WHITELIST_AUTO_REVOKE_PERMISSIONS is allowed to call this.
 
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
| Parameters | |
|---|---|
| packageName | String: The app for which to set exemption.
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | Whether the app is whitelisted. | 
| Throws | |
|---|---|
| SecurityException | if you you have no access to this. | 
isAutoRevokeWhitelisted
public boolean isAutoRevokeWhitelisted ()
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
| Returns | |
|---|---|
| boolean | whether this package is whitelisted from having its runtime permission be auto-revoked if unused for an extended period of time. | 
isDefaultApplicationIcon
public boolean isDefaultApplicationIcon (Drawable drawable)
Returns if the provided drawable represents the default activity icon provided by the system. PackageManager silently returns a default application icon for any package/activity if the app itself does not define one or if the system encountered any error when loading the icon. Developers can use this to check implement app specific logic around retrying or caching.
| Parameters | |
|---|---|
| drawable | Drawable: This value cannot benull. | 
| Returns | |
|---|---|
| boolean | true if the drawable represents the default activity icon, false otherwise | 
isDeviceUpgrading
public boolean isDeviceUpgrading ()
Returns true if the device is upgrading, such as first boot after OTA.
| Returns | |
|---|---|
| boolean | |
isInstantApp
public abstract boolean isInstantApp ()
Gets whether this application is an instant app.
| Returns | |
|---|---|
| boolean | Whether caller is an instant app. | 
isInstantApp
public abstract boolean isInstantApp (String packageName)
Gets whether the given package is an instant app.
| Parameters | |
|---|---|
| packageName | String: The package to check
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | Whether the given package is an instant app. | 
isPackageStopped
public boolean isPackageStopped (String packageName)
Query if an app is currently stopped.
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| Returns | |
|---|---|
| boolean | trueif the given package is stopped,falseotherwise | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if the package could not be found. | 
See also:
isPackageSuspended
public boolean isPackageSuspended (String packageName)
Query if an app is currently suspended.
| Parameters | |
|---|---|
| packageName | String: This value cannot benull. | 
| Returns | |
|---|---|
| boolean | trueif the given package is suspended,falseotherwise | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if the package could not be found. | 
See also:
isPackageSuspended
public boolean isPackageSuspended ()
Apps can query this to know if they have been suspended. A system app with the permission
 android.permission.SUSPEND_APPS can put any app on the device into a suspended state.
 
While in this state, the application's notifications will be hidden, any of its started activities will be stopped and it will not be able to show toasts or dialogs or play audio. When the user tries to launch a suspended app, the system will, instead, show a dialog to the user informing them that they cannot use this app while it is suspended.
When an app is put into this state, the broadcast action
 Intent.ACTION_MY_PACKAGE_SUSPENDED will be delivered to any of its broadcast
 receivers that included this action in their intent-filters, including manifest
 receivers. Similarly, a broadcast action Intent.ACTION_MY_PACKAGE_UNSUSPENDED
 is delivered when a previously suspended app is taken out of this state. Apps are expected to
 use these to gracefully deal with transitions to and from this state.
| Returns | |
|---|---|
| boolean | trueif the calling package has been suspended,falseotherwise. | 
isPermissionRevokedByPolicy
public abstract boolean isPermissionRevokedByPolicy (String permName, String packageName)
Checks whether a particular permissions has been revoked for a package by policy. Typically the device owner or the profile owner may apply such a policy. The user cannot grant policy revoked permissions, hence the only way for an app to get such a permission is by a policy change.
| Parameters | |
|---|---|
| permName | String: The name of the permission you are checking for.
 This value cannot benull. | 
| packageName | String: The name of the package you are checking against.
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | Whether the permission is restricted by policy. | 
isSafeMode
public abstract boolean isSafeMode ()
Return whether the device has been booted into safe mode.
| Returns | |
|---|---|
| boolean | |
parseAndroidManifest
public T parseAndroidManifest (File apkFile, Function<XmlResourceParser, T> parserFunction)
Retrieve AndroidManifest.xml information for the given application apk file.
Example:
 Bundle result;
 try {
     result = getContext().getPackageManager().parseAndroidManifest(apkFile,
             xmlResourceParser -> {
                 Bundle bundle = new Bundle();
                 // Search the start tag
                 int type;
                 while ((type = xmlResourceParser.next()) != XmlPullParser.START_TAG
                         && type != XmlPullParser.END_DOCUMENT) {
                 }
                 if (type != XmlPullParser.START_TAG) {
                     return bundle;
                 }
                 // Start to read the tags and attributes from the xmlResourceParser
                 if (!xmlResourceParser.getName().equals("manifest")) {
                     return bundle;
                 }
                 String packageName = xmlResourceParser.getAttributeValue(null, "package");
                 bundle.putString("package", packageName);
                 // Continue to read the tags and attributes from the xmlResourceParser
                 return bundle;
             });
 } catch (IOException e) {
 }
 This method may take several seconds to complete, so it should only be called from a worker thread.
| Parameters | |
|---|---|
| apkFile | File: The file of an application apk.
 This value cannot benull. | 
| parserFunction | Function: The parserFunction will be invoked with the XmlResourceParser object
        after getting the AndroidManifest.xml of an application package.
 This value cannot benull. | 
| Returns | |
|---|---|
| T | Returns the result of the Function.apply(Object). | 
| Throws | |
|---|---|
| IOException | if the AndroidManifest.xml of an application package cannot be read or accessed. | 
parseAndroidManifest
public T parseAndroidManifest (ParcelFileDescriptor apkFileDescriptor, Function<XmlResourceParser, T> parserFunction)
Similar to parseAndroidManifest(java.io.File, java.util.function.Function), but accepting a file descriptor
 instead of a File object.
 
 This method may take several seconds to complete, so it should
 only be called from a worker thread.
| Parameters | |
|---|---|
| apkFileDescriptor | ParcelFileDescriptor: The file descriptor of an application apk.
 The parserFunction will be invoked with the XmlResourceParser object
        after getting the AndroidManifest.xml of an application package.
 This value cannot benull. | 
| parserFunction | Function: This value cannot benull. | 
| Returns | |
|---|---|
| T | Returns the result of the Function.apply(Object). | 
| Throws | |
|---|---|
| IOException | if the AndroidManifest.xml of an application package cannot be read or accessed. | 
queryActivityProperty
public List<PackageManager.Property> queryActivityProperty (String propertyName)
Returns the property definition for all <activity> and <activity-alias> tags.
If the property is not defined with any <activity> and <activity-alias> tag, returns and empty list.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageManager.Property> | This value cannot be null. | 
queryApplicationProperty
public List<PackageManager.Property> queryApplicationProperty (String propertyName)
Returns the property definition for all <application> tags.
If the property is not defined with any <application> tag, returns and empty list.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageManager.Property> | This value cannot be null. | 
queryBroadcastReceivers
public List<ResolveInfo> queryBroadcastReceivers (Intent intent, PackageManager.ResolveInfoFlags flags)
See queryBroadcastReceivers(android.content.Intent, int).
| Parameters | |
|---|---|
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ResolveInfo> | This value cannot be null. | 
queryBroadcastReceivers
public abstract List<ResolveInfo> queryBroadcastReceivers (Intent intent, int flags)
Retrieve all receivers that can handle a broadcast of the given intent.
 Use queryBroadcastReceivers(android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| intent | Intent: The desired intent as per resolveActivity().
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| List<ResolveInfo> | Returns a List of ResolveInfo objects containing one entry for
         each matching receiver, ordered from best to worst. If there are
         no matching receivers, returns an empty list.
 This value cannot be null. | 
queryContentProviders
public abstract List<ProviderInfo> queryContentProviders (String processName, int uid, int flags)
Retrieve content provider information.
 Note: unlike most other methods, an empty result set is indicated
 by a null return instead of an empty list.
 Use queryContentProviders(java.lang.String, int, android.content.pm.PackageManager.ComponentInfoFlags) when long flags are
 needed.
| Parameters | |
|---|---|
| processName | String: If non-null, limits the returned providers to only
            those that are hosted by the given process. If null, all
            content providers are returned. | 
| uid | int: If processName is non-null, this is the required
            uid owning the requested content providers. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| List<ProviderInfo> | A list of ProviderInfoobjects containing one entry for
         each provider either matching processName or, if
         processName is null, all known content providers.
         If there are no matching providers, null is returned. | 
queryContentProviders
public List<ProviderInfo> queryContentProviders (String processName, int uid, PackageManager.ComponentInfoFlags flags)
See queryContentProviders(java.lang.String, int, int).
| Parameters | |
|---|---|
| processName | String: This value may benull. | 
| uid | int | 
| flags | PackageManager.ComponentInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ProviderInfo> | This value cannot be null. | 
queryInstrumentation
public abstract List<InstrumentationInfo> queryInstrumentation (String targetPackage, int flags)
Retrieve information about available instrumentation code. May be used to retrieve either all instrumentation code, or only the code targeting a particular package.
| Parameters | |
|---|---|
| targetPackage | String: If null, all instrumentation is returned; only the
            instrumentation targeting this package name is returned. | 
| flags | int: Additional option flags to modify the data returned.
 Value is either0orGET_META_DATA | 
| Returns | |
|---|---|
| List<InstrumentationInfo> | A list of InstrumentationInfoobjects containing one
         entry for each matching instrumentation. If there are no
         instrumentation available, returns an empty list.
 This value cannot benull. | 
queryIntentActivities
public List<ResolveInfo> queryIntentActivities (Intent intent, PackageManager.ResolveInfoFlags flags)
See queryIntentActivities(android.content.Intent, int).
| Parameters | |
|---|---|
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ResolveInfo> | This value cannot be null. | 
queryIntentActivities
public abstract List<ResolveInfo> queryIntentActivities (Intent intent, int flags)
Retrieve all activities that can be performed for the given intent.
 Use queryIntentActivities(android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| intent | Intent: The desired intent as per resolveActivity().
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. The
            most important isMATCH_DEFAULT_ONLY, to limit the
            resolution to only those activities that support theIntent.CATEGORY_DEFAULT. Or, setMATCH_ALLto prevent any filtering of the results. | 
| Returns | |
|---|---|
| List<ResolveInfo> | Returns a List of ResolveInfo objects containing one entry for
         each matching activity, ordered from best to worst. In other
         words, the first item is what would be returned by resolveActivity(Intent, ResolveInfoFlags). If there are no matching activities, an
         empty list is returned.
 This value cannot benull. | 
queryIntentActivityOptions
public abstract List<ResolveInfo> queryIntentActivityOptions (ComponentName caller, Intent[] specifics, Intent intent, int flags)
Retrieve a set of activities that should be presented to the user as
 similar options. This is like queryIntentActivities(Intent, ResolveInfoFlags), except it
 also allows you to supply a list of more explicit Intents that you would
 like to resolve to particular options, and takes care of returning the
 final ResolveInfo list in a reasonable order, with no duplicates, based
 on those inputs.
 Use queryIntentActivityOptions(android.content.ComponentName, java.util.List, android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when
 long flags are needed.
| Parameters | |
|---|---|
| caller | ComponentName: The class name of the activity that is making the request.
            This activity will never appear in the output list. Can be
            null. | 
| specifics | Intent: An array of Intents that should be resolved to the first
            specific results. Can be null. | 
| intent | Intent: The desired intent as per resolveActivity().
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. The
            most important isMATCH_DEFAULT_ONLY, to limit the
            resolution to only those activities that support theIntent.CATEGORY_DEFAULT. | 
| Returns | |
|---|---|
| List<ResolveInfo> | Returns a List of ResolveInfo objects containing one entry for
         each matching activity. The list is ordered first by all of the
         intents resolved in specifics and then any additional
         activities that can handle intent but did not get
         included by one of the specifics intents. If there are
         no matching activities, an empty list is returned.
 This value cannot be null. | 
queryIntentActivityOptions
public List<ResolveInfo> queryIntentActivityOptions (ComponentName caller, List<Intent> specifics, Intent intent, PackageManager.ResolveInfoFlags flags)
| Parameters | |
|---|---|
| caller | ComponentName: This value may benull. | 
| specifics | List: This value may benull. | 
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ResolveInfo> | This value cannot be null. | 
queryIntentContentProviders
public List<ResolveInfo> queryIntentContentProviders (Intent intent, PackageManager.ResolveInfoFlags flags)
See queryIntentContentProviders(android.content.Intent, int).
| Parameters | |
|---|---|
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ResolveInfo> | This value cannot be null. | 
queryIntentContentProviders
public abstract List<ResolveInfo> queryIntentContentProviders (Intent intent, int flags)
Retrieve all providers that can match the given intent.
 Use queryIntentContentProviders(android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when long flags are
 needed.
| Parameters | |
|---|---|
| intent | Intent: An intent containing all of the desired specification
            (action, data, type, category, and/or component).
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| List<ResolveInfo> | Returns a List of ResolveInfo objects containing one entry for
         each matching provider, ordered from best to worst. If there are
         no matching services, returns an empty list.
 This value cannot be null. | 
queryIntentServices
public abstract List<ResolveInfo> queryIntentServices (Intent intent, int flags)
Retrieve all services that can match the given intent.
 Use queryIntentServices(android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| intent | Intent: The desired intent as per resolveService().
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| List<ResolveInfo> | Returns a List of ResolveInfo objects containing one entry for
         each matching service, ordered from best to worst. In other
         words, the first item is what would be returned by resolveService(Intent, ResolveInfoFlags). If there are no matching services,
         returns an empty list.
 This value cannot benull. | 
queryIntentServices
public List<ResolveInfo> queryIntentServices (Intent intent, PackageManager.ResolveInfoFlags flags)
See queryIntentServices(android.content.Intent, int).
| Parameters | |
|---|---|
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| List<ResolveInfo> | This value cannot be null. | 
queryPermissionsByGroup
public abstract List<PermissionInfo> queryPermissionsByGroup (String permissionGroup, int flags)
Query for all of the permissions associated with a particular group.
| Parameters | |
|---|---|
| permissionGroup | String: The fully qualified name (i.e. com.google.permission.LOGIN)
            of the permission group you are interested in. Usenullto
            find all of the permissions not associated with a group. | 
| flags | int: Additional option flags to modify the data returned.
 Value is either0orGET_META_DATA | 
| Returns | |
|---|---|
| List<PermissionInfo> | Returns a list of PermissionInfocontaining information
         about all of the permissions in the given group.
 This value cannot benull. | 
| Throws | |
|---|---|
| PackageManager.NameNotFoundException | if a group with the given name cannot be found on the system. | 
queryProviderProperty
public List<PackageManager.Property> queryProviderProperty (String propertyName)
Returns the property definition for all <provider> tags.
If the property is not defined with any <provider> tag, returns and empty list.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageManager.Property> | This value cannot be null. | 
queryReceiverProperty
public List<PackageManager.Property> queryReceiverProperty (String propertyName)
Returns the property definition for all <receiver> tags.
If the property is not defined with any <receiver> tag, returns and empty list.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageManager.Property> | This value cannot be null. | 
queryServiceProperty
public List<PackageManager.Property> queryServiceProperty (String propertyName)
Returns the property definition for all <service> tags.
If the property is not defined with any <service> tag, returns and empty list.
| Parameters | |
|---|---|
| propertyName | String: This value cannot benull. | 
| Returns | |
|---|---|
| List<PackageManager.Property> | This value cannot be null. | 
relinquishUpdateOwnership
public void relinquishUpdateOwnership (String targetPackage)
Attempt to relinquish the update ownership of the given package. Only the current update owner of the given package can use this API.
| Parameters | |
|---|---|
| targetPackage | String: The installed package whose update owner will be changed.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the given package is invalid. | 
| SecurityException | if you are not the current update owner of the given package. | 
removePackageFromPreferred
public abstract void removePackageFromPreferred (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, ResolveInfoFlags) or queryIntentActivities(Intent, ResolveInfoFlags). 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 benull. | 
removePermission
public abstract void removePermission (String permName)
Removes a permission that was previously added with
 addPermission(android.content.pm.PermissionInfo).  The same ownership rules apply
 -- you are only allowed to remove permissions that you are allowed
 to add.
| Parameters | |
|---|---|
| permName | String: The name of the permission to remove.
 This value cannot benull. | 
| Throws | |
|---|---|
| SecurityException | if you are not allowed to remove the given permission name. | 
See also:
removeWhitelistedRestrictedPermission
public boolean removeWhitelistedRestrictedPermission (String packageName, String permName, int whitelistFlags)
Removes 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 restricted or 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 four whitelists:
 
- one for cases where the system permission policy whitelists a permission
 This list corresponds to the FLAG_PERMISSION_WHITELIST_SYSTEMflag. 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_UPGRADEflag. 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_INSTALLERflag. Can be modified by pre-installed holders of a dedicated permission or the installer on record.
- one for cases where the system exempts 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_UPGRADEflag. Can be modified by pre-installed holders of a dedicated permission. The installer on record can only remove permissions from this allowlist.
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.
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
| Parameters | |
|---|---|
| packageName | String: The app for which to get whitelisted permissions.
 This value cannot benull. | 
| permName | String: The whitelisted permission to remove.
 This value cannot benull. | 
| whitelistFlags | int: The whitelists from which to remove. Passing multiple flags
 updates all specified whitelists.
 Value is either0or a combination ofFLAG_PERMISSION_WHITELIST_SYSTEM,FLAG_PERMISSION_WHITELIST_INSTALLER, andFLAG_PERMISSION_WHITELIST_UPGRADE | 
| Returns | |
|---|---|
| boolean | Whether the permission was removed from the whitelist. | 
| Throws | |
|---|---|
| SecurityException | if you try to modify a whitelist that you have no access to. | 
requestChecksums
public void requestChecksums (String packageName, boolean includeSplits, int required, List<Certificate> trustedInstallers, PackageManager.OnChecksumsReadyListener onChecksumsReadyListener)
Requests the checksums for APKs within a package. The checksums will be returned asynchronously via onChecksumsReadyListener. By default returns all readily available checksums: - enforced by platform, - enforced by installer. If caller needs a specific checksum kind, they can specify it as required. Caution: Android can not verify installer-provided checksums. Make sure you specify trusted installers.
| Parameters | |
|---|---|
| packageName | String: whose checksums to return.
 This value cannot benull. | 
| includeSplits | boolean: whether to include checksums for non-base splits. | 
| required | int: explicitly request the checksum types. May incur significant
                 CPU/memory/disk usage.
 Value is either0or a combination ofChecksum.TYPE_WHOLE_MERKLE_ROOT_4K_SHA256,Checksum.TYPE_WHOLE_MD5,Checksum.TYPE_WHOLE_SHA1,Checksum.TYPE_WHOLE_SHA256,Checksum.TYPE_WHOLE_SHA512,Checksum.TYPE_PARTIAL_MERKLE_ROOT_1M_SHA256, andChecksum.TYPE_PARTIAL_MERKLE_ROOT_1M_SHA512 | 
| trustedInstallers | List: for checksums enforced by installer, which installers are to be
                          trusted.TRUST_ALLwill return checksums from any installer,TRUST_NONEdisables optimized installer-enforced checksums,
                          otherwise the list has to be non-empty list of certificates.
 This value cannot benull. | 
| onChecksumsReadyListener | PackageManager.OnChecksumsReadyListener: called once when the results are available.
 This value cannot benull. | 
| Throws | |
|---|---|
| CertificateEncodingException | if an encoding error occurs for trustedInstallers. | 
| IllegalArgumentException | if the list of trusted installer certificates is empty. | 
| PackageManager.NameNotFoundException | if a package with the given name cannot be found on the system. | 
resolveActivity
public ResolveInfo resolveActivity (Intent intent, PackageManager.ResolveInfoFlags flags)
See resolveActivity(android.content.Intent, int).
| Parameters | |
|---|---|
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ResolveInfo | This value may be null. | 
resolveActivity
public abstract ResolveInfo resolveActivity (Intent intent, int flags)
Determine the best action to perform for a given Intent. This is how
 Intent.resolveActivity finds an activity if a class has not been
 explicitly specified.
 
 Note: if using an implicit Intent (without an explicit
 ComponentName specified), be sure to consider whether to set the
 MATCH_DEFAULT_ONLY only flag. You need to do so to resolve the
 activity in the same way that
 Context.startActivity(Intent) and
 Intent.resolveActivity(PackageManager) do.
 
resolveActivity(android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when long flags are needed.
    | Parameters | |
|---|---|
| intent | Intent: An intent containing all of the desired specification
            (action, data, type, category, and/or component).
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. The
            most important isMATCH_DEFAULT_ONLY, to limit the
            resolution to only those activities that support theIntent.CATEGORY_DEFAULT. | 
| Returns | |
|---|---|
| ResolveInfo | Returns a ResolveInfo object containing the final activity intent that was determined to be the best action. Returns null if no matching activity was found. If multiple matching activities are found and there is no default set, returns a ResolveInfo object containing something else, such as the activity resolver. | 
resolveContentProvider
public ProviderInfo resolveContentProvider (String authority, PackageManager.ComponentInfoFlags flags)
See resolveContentProvider(java.lang.String, int).
| Parameters | |
|---|---|
| authority | String: This value cannot benull. | 
| flags | PackageManager.ComponentInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ProviderInfo | This value may be null. | 
resolveContentProvider
public abstract ProviderInfo resolveContentProvider (String authority, int flags)
Find a single content provider by its authority.
Example:
 Uri uri = Uri.parse("content://com.example.app.provider/table1");
 ProviderInfo info = packageManager.resolveContentProvider(uri.getAuthority(), flags);
 resolveContentProvider(java.lang.String, android.content.pm.PackageManager.ComponentInfoFlags) when long flags are needed.
    | Parameters | |
|---|---|
| authority | String: The authority of the provider to find.
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ProviderInfo | A ProviderInfoobject containing information about the
         provider. If a provider was not found, returns null. | 
resolveService
public abstract ResolveInfo resolveService (Intent intent, int flags)
Determine the best service to handle for a given Intent.
 Use resolveService(android.content.Intent, android.content.pm.PackageManager.ResolveInfoFlags) when long flags are needed.
| Parameters | |
|---|---|
| intent | Intent: An intent containing all of the desired specification
            (action, data, type, category, and/or component).
 This value cannot benull. | 
| flags | int: Additional option flags to modify the data returned. | 
| Returns | |
|---|---|
| ResolveInfo | Returns a ResolveInfo object containing the final service intent that was determined to be the best action. Returns null if no matching service was found. | 
resolveService
public ResolveInfo resolveService (Intent intent, PackageManager.ResolveInfoFlags flags)
See resolveService(android.content.Intent, int).
| Parameters | |
|---|---|
| intent | Intent: This value cannot benull. | 
| flags | PackageManager.ResolveInfoFlags: This value cannot benull. | 
| Returns | |
|---|---|
| ResolveInfo | This value may be null. | 
setApplicationCategoryHint
public abstract void setApplicationCategoryHint (String packageName, int categoryHint)
Provide a hint of what the ApplicationInfo.category value should
 be for the given package.
 
 This hint can only be set by the app which installed this package, as
 determined by getInstallerPackageName(java.lang.String).
| Parameters | |
|---|---|
| packageName | String: the package to change the category hint for.
 This value cannot benull. | 
| categoryHint | int: the category hint to set.
 Value isApplicationInfo.CATEGORY_UNDEFINED,ApplicationInfo.CATEGORY_GAME,ApplicationInfo.CATEGORY_AUDIO,ApplicationInfo.CATEGORY_VIDEO,ApplicationInfo.CATEGORY_IMAGE,ApplicationInfo.CATEGORY_SOCIAL,ApplicationInfo.CATEGORY_NEWS,ApplicationInfo.CATEGORY_MAPS,ApplicationInfo.CATEGORY_PRODUCTIVITY, orApplicationInfo.CATEGORY_ACCESSIBILITY | 
setApplicationEnabledSetting
public abstract void setApplicationEnabledSetting (String packageName, int newState, int flags)
Set the enabled setting for an application
 This setting will override any enabled state which may have been set by the application in
 its manifest.  It also overrides the enabled state set in the manifest for any of the
 application's components.  It does not override any enabled state set by
 setComponentEnabledSetting(ComponentName, int, int) for any of the application's components.
| Parameters | |
|---|---|
| packageName | String: The package name of the application to enable
 This value cannot benull. | 
| newState | int: The new enabled state for the application.
 Value isCOMPONENT_ENABLED_STATE_DEFAULT,COMPONENT_ENABLED_STATE_ENABLED,COMPONENT_ENABLED_STATE_DISABLED,COMPONENT_ENABLED_STATE_DISABLED_USER, orCOMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED | 
| flags | int: Optional behavior flags.
 Value is either0or a combination ofDONT_KILL_APP, andSYNCHRONOUS | 
setAutoRevokeWhitelisted
public boolean setAutoRevokeWhitelisted (String packageName, boolean whitelisted)
Marks an application exempt from having its permissions be automatically revoked when the app is unused for an extended period of time. Only the installer on record that installed the given package is allowed to call this. Packages start in whitelisted state, and it is the installer's responsibility to un-whitelist the packages it installs, unless auto-revoking permissions from that package would cause breakages beyond having to re-request the permission(s).
Note: In retrospect it would have been preferred to use more inclusive terminology when naming this API. Similar APIs added will refrain from using the term "whitelist".
| Parameters | |
|---|---|
| packageName | String: The app for which to set exemption.
 This value cannot benull. | 
| whitelisted | boolean: Whether the app should be whitelisted. | 
| Returns | |
|---|---|
| boolean | whether any change took effect. | 
| Throws | |
|---|---|
| SecurityException | if you you have no access to modify this. | 
See also:
setComponentEnabledSetting
public abstract void setComponentEnabledSetting (ComponentName componentName, int newState, int flags)
Set the enabled setting for a package component (activity, receiver, service, provider). This setting will override any enabled state which may have been set by the component in its manifest.
Consider using setComponentEnabledSettings(java.util.List) if multiple components need to
 be updated atomically.
| Parameters | |
|---|---|
| componentName | ComponentName: The component to enable
 This value cannot benull. | 
| newState | int: The new enabled state for the component.
 Value isCOMPONENT_ENABLED_STATE_DEFAULT,COMPONENT_ENABLED_STATE_ENABLED,COMPONENT_ENABLED_STATE_DISABLED,COMPONENT_ENABLED_STATE_DISABLED_USER, orCOMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED | 
| flags | int: Optional behavior flags.
 Value is either0or a combination ofDONT_KILL_APP, andSYNCHRONOUS | 
setComponentEnabledSettings
public void setComponentEnabledSettings (List<PackageManager.ComponentEnabledSetting> settings)
Set the enabled settings for package components such as activities, receivers, services and providers. This setting will override any enabled state which may have been set by the component in its manifest.
This api accepts a list of component changes, and applies them all atomically. The application can use this api if components have dependencies and need to be updated atomically.
The permission is not required if target components are running under the same uid with the caller.
| Parameters | |
|---|---|
| settings | List: The list of component enabled settings to update. Note that anIllegalArgumentExceptionis thrown if the duplicated component name
                 is in the list or there's a conflictDONT_KILL_APPflag between
                 different components in the same package.
 This value cannot benull. | 
setInstallerPackageName
public abstract void setInstallerPackageName (String targetPackage, String installerPackageName)
Change the installer associated with a given package. There are limitations on how the installer package can be changed; in particular:
- A SecurityException will be thrown if installerPackageName is not signed with the same certificate as the calling application.
- A SecurityException will be thrown if targetPackage already has an installer package, and that installer package is not signed with the same certificate as the calling application.
| Parameters | |
|---|---|
| targetPackage | String: The installed package whose installer will be changed.
 This value cannot benull. | 
| installerPackageName | String: The package name of the new installer.  May be
 null to clear the association. | 
setMimeGroup
public void setMimeGroup (String mimeGroup, Set<String> mimeTypes)
Sets MIME group's MIME types. 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 modify.
 This value cannot benull. | 
| mimeTypes | Set: new MIME types contained by MIME group.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the MIME group was not declared in the manifest. | 
updateInstantAppCookie
public abstract void updateInstantAppCookie (byte[] cookie)
Updates the instant application cookie for the calling 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. The
 cookie size is limited by getInstantAppCookieMaxBytes().
 Passing null or an empty array clears the cookie.
 
| Parameters | |
|---|---|
| cookie | byte: The cookie data.
 This value may benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the array exceeds max cookie size. | 
verifyPendingInstall
public abstract void verifyPendingInstall (int id, 
                int verificationCode)Allows a package listening to the
 broadcast to respond to the package manager. The response must include
 the verificationCode which is one of
 PackageManager.VERIFICATION_ALLOW or
 PackageManager.VERIFICATION_REJECT.
| Parameters | |
|---|---|
| id | int: pending package identifier as passed via thePackageManager.EXTRA_VERIFICATION_IDIntent extra. | 
| verificationCode | int: eitherPackageManager.VERIFICATION_ALLOWorPackageManager.VERIFICATION_REJECT. | 
| Throws | |
|---|---|
| SecurityException | if the caller does not have the PACKAGE_VERIFICATION_AGENT permission. | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.
