Merge "Add annotations"
diff --git a/api/current.txt b/api/current.txt
index ff75db9..23cf2a3 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -11534,107 +11534,107 @@
public abstract class PackageManager {
ctor public PackageManager();
- method @Deprecated public abstract void addPackageToPreferred(String);
- method public abstract boolean addPermission(android.content.pm.PermissionInfo);
- method public abstract boolean addPermissionAsync(android.content.pm.PermissionInfo);
- method @Deprecated public abstract void addPreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
+ method @Deprecated public abstract void addPackageToPreferred(@NonNull String);
+ method public abstract boolean addPermission(@NonNull android.content.pm.PermissionInfo);
+ method public abstract boolean addPermissionAsync(@NonNull android.content.pm.PermissionInfo);
+ method @Deprecated public abstract void addPreferredActivity(@NonNull android.content.IntentFilter, int, @Nullable android.content.ComponentName[], @NonNull android.content.ComponentName);
method public abstract boolean canRequestPackageInstalls();
- method public abstract String[] canonicalToCurrentPackageNames(String[]);
- method @CheckResult public abstract int checkPermission(String, String);
- method @CheckResult public abstract int checkSignatures(String, String);
+ method public abstract String[] canonicalToCurrentPackageNames(@NonNull String[]);
+ method @CheckResult public abstract int checkPermission(@NonNull String, @NonNull String);
+ method @CheckResult public abstract int checkSignatures(@NonNull String, @NonNull String);
method @CheckResult public abstract int checkSignatures(int, int);
method public abstract void clearInstantAppCookie();
- method @Deprecated public abstract void clearPackagePreferredActivities(String);
- method public abstract String[] currentToCanonicalPackageNames(String[]);
+ method @Deprecated public abstract void clearPackagePreferredActivities(@NonNull String);
+ method public abstract String[] currentToCanonicalPackageNames(@NonNull String[]);
method public abstract void extendVerificationTimeout(int, int, long);
- method public abstract android.graphics.drawable.Drawable getActivityBanner(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.graphics.drawable.Drawable getActivityBanner(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.graphics.drawable.Drawable getActivityIcon(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.graphics.drawable.Drawable getActivityIcon(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.ActivityInfo getActivityInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.graphics.drawable.Drawable getActivityLogo(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.graphics.drawable.Drawable getActivityLogo(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract java.util.List<android.content.pm.PermissionGroupInfo> getAllPermissionGroups(int);
- method public abstract android.graphics.drawable.Drawable getApplicationBanner(android.content.pm.ApplicationInfo);
- method public abstract android.graphics.drawable.Drawable getApplicationBanner(String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Nullable public abstract android.graphics.drawable.Drawable getActivityBanner(@NonNull android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Nullable public abstract android.graphics.drawable.Drawable getActivityBanner(@NonNull android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.graphics.drawable.Drawable getActivityIcon(@NonNull android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.graphics.drawable.Drawable getActivityIcon(@NonNull android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.pm.ActivityInfo getActivityInfo(@NonNull android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Nullable public abstract android.graphics.drawable.Drawable getActivityLogo(@NonNull android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Nullable public abstract android.graphics.drawable.Drawable getActivityLogo(@NonNull android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract java.util.List<android.content.pm.PermissionGroupInfo> getAllPermissionGroups(int);
+ method @Nullable public abstract android.graphics.drawable.Drawable getApplicationBanner(@NonNull android.content.pm.ApplicationInfo);
+ method @Nullable public abstract android.graphics.drawable.Drawable getApplicationBanner(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
method public abstract int getApplicationEnabledSetting(@NonNull String);
- method public abstract android.graphics.drawable.Drawable getApplicationIcon(android.content.pm.ApplicationInfo);
- method public abstract android.graphics.drawable.Drawable getApplicationIcon(String) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.ApplicationInfo getApplicationInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract CharSequence getApplicationLabel(android.content.pm.ApplicationInfo);
- method public abstract android.graphics.drawable.Drawable getApplicationLogo(android.content.pm.ApplicationInfo);
- method public abstract android.graphics.drawable.Drawable getApplicationLogo(String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.graphics.drawable.Drawable getApplicationIcon(@NonNull android.content.pm.ApplicationInfo);
+ method @NonNull public abstract android.graphics.drawable.Drawable getApplicationIcon(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.pm.ApplicationInfo getApplicationInfo(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract CharSequence getApplicationLabel(@NonNull android.content.pm.ApplicationInfo);
+ method @Nullable public abstract android.graphics.drawable.Drawable getApplicationLogo(@NonNull android.content.pm.ApplicationInfo);
+ method @Nullable public abstract android.graphics.drawable.Drawable getApplicationLogo(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
method @Nullable public abstract android.content.pm.ChangedPackages getChangedPackages(@IntRange(from=0) int);
method public abstract int getComponentEnabledSetting(@NonNull android.content.ComponentName);
- method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon();
- method public abstract android.graphics.drawable.Drawable getDrawable(String, @DrawableRes int, android.content.pm.ApplicationInfo);
- method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int);
+ method @NonNull public abstract android.graphics.drawable.Drawable getDefaultActivityIcon();
+ method @Nullable public abstract android.graphics.drawable.Drawable getDrawable(@NonNull String, @DrawableRes int, @Nullable android.content.pm.ApplicationInfo);
+ method @NonNull public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int);
method @NonNull public java.util.List<android.content.pm.ModuleInfo> getInstalledModules(int);
- method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int);
- method @Nullable public abstract String getInstallerPackageName(String);
+ method @NonNull public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int);
+ method @Nullable public abstract String getInstallerPackageName(@NonNull String);
method @NonNull public abstract byte[] getInstantAppCookie();
method public abstract int getInstantAppCookieMaxBytes();
- method public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(@NonNull android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
method @Nullable public abstract android.content.Intent getLaunchIntentForPackage(@NonNull String);
method @Nullable public abstract android.content.Intent getLeanbackLaunchIntentForPackage(@NonNull String);
- method public android.content.pm.ModuleInfo getModuleInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public android.content.pm.ModuleInfo getModuleInfo(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
method @Nullable public abstract String getNameForUid(int);
- method public android.content.pm.PackageInfo getPackageArchiveInfo(String, int);
+ method @Nullable public android.content.pm.PackageInfo getPackageArchiveInfo(@NonNull String, int);
method public abstract int[] getPackageGids(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract int[] getPackageGids(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.PackageInfo getPackageInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.PackageInfo getPackageInfo(android.content.pm.VersionedPackage, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public abstract int[] getPackageGids(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public abstract android.content.pm.PackageInfo getPackageInfo(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public abstract android.content.pm.PackageInfo getPackageInfo(@NonNull android.content.pm.VersionedPackage, int) throws android.content.pm.PackageManager.NameNotFoundException;
method @NonNull public abstract android.content.pm.PackageInstaller getPackageInstaller();
- method public abstract int getPackageUid(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public abstract int getPackageUid(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
method @Nullable public abstract String[] getPackagesForUid(int);
- method public abstract java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(String[], int);
- method public abstract android.content.pm.PermissionGroupInfo getPermissionGroupInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.PermissionInfo getPermissionInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method @Deprecated public abstract int getPreferredActivities(@NonNull java.util.List<android.content.IntentFilter>, @NonNull java.util.List<android.content.ComponentName>, String);
- method @Deprecated public abstract java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
- method public abstract android.content.pm.ProviderInfo getProviderInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.ActivityInfo getReceiverInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.res.Resources getResourcesForActivity(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.res.Resources getResourcesForApplication(android.content.pm.ApplicationInfo) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.res.Resources getResourcesForApplication(String) throws android.content.pm.PackageManager.NameNotFoundException;
- method public abstract android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(@NonNull String[], int);
+ method @NonNull public abstract android.content.pm.PermissionGroupInfo getPermissionGroupInfo(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public abstract android.content.pm.PermissionInfo getPermissionInfo(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Deprecated public abstract int getPreferredActivities(@NonNull java.util.List<android.content.IntentFilter>, @NonNull java.util.List<android.content.ComponentName>, @Nullable String);
+ method @Deprecated @NonNull public abstract java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
+ method @NonNull public abstract android.content.pm.ProviderInfo getProviderInfo(@NonNull android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.pm.ActivityInfo getReceiverInfo(@NonNull android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.res.Resources getResourcesForActivity(@NonNull android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.res.Resources getResourcesForApplication(@NonNull android.content.pm.ApplicationInfo) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.res.Resources getResourcesForApplication(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull public abstract android.content.pm.ServiceInfo getServiceInfo(@NonNull android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
method @NonNull public abstract java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int);
method @Nullable public android.os.Bundle getSuspendedPackageAppExtras();
method public boolean getSyntheticAppDetailsActivityEnabled(@NonNull String);
- method public abstract android.content.pm.FeatureInfo[] getSystemAvailableFeatures();
- method public abstract String[] getSystemSharedLibraryNames();
- method public abstract CharSequence getText(String, @StringRes int, android.content.pm.ApplicationInfo);
- method public abstract android.graphics.drawable.Drawable getUserBadgedDrawableForDensity(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
- method public abstract android.graphics.drawable.Drawable getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle);
- method public abstract CharSequence getUserBadgedLabel(CharSequence, android.os.UserHandle);
- method public abstract android.content.res.XmlResourceParser getXml(String, @XmlRes int, android.content.pm.ApplicationInfo);
- method public boolean hasSigningCertificate(String, byte[], int);
- method public boolean hasSigningCertificate(int, byte[], int);
- method public abstract boolean hasSystemFeature(String);
- method public abstract boolean hasSystemFeature(String, int);
+ method @NonNull public abstract android.content.pm.FeatureInfo[] getSystemAvailableFeatures();
+ method @Nullable public abstract String[] getSystemSharedLibraryNames();
+ method @Nullable public abstract CharSequence getText(@NonNull String, @StringRes int, @Nullable android.content.pm.ApplicationInfo);
+ method @NonNull public abstract android.graphics.drawable.Drawable getUserBadgedDrawableForDensity(@NonNull android.graphics.drawable.Drawable, @NonNull android.os.UserHandle, @Nullable android.graphics.Rect, int);
+ method @NonNull public abstract android.graphics.drawable.Drawable getUserBadgedIcon(@NonNull android.graphics.drawable.Drawable, @NonNull android.os.UserHandle);
+ method @NonNull public abstract CharSequence getUserBadgedLabel(@NonNull CharSequence, @NonNull android.os.UserHandle);
+ method @Nullable public abstract android.content.res.XmlResourceParser getXml(@NonNull String, @XmlRes int, @Nullable android.content.pm.ApplicationInfo);
+ method public boolean hasSigningCertificate(@NonNull String, @NonNull byte[], int);
+ method public boolean hasSigningCertificate(int, @NonNull byte[], int);
+ method public abstract boolean hasSystemFeature(@NonNull String);
+ method public abstract boolean hasSystemFeature(@NonNull String, int);
method public abstract boolean isInstantApp();
- method public abstract boolean isInstantApp(String);
- method public boolean isPackageSuspended(String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public abstract boolean isInstantApp(@NonNull String);
+ method public boolean isPackageSuspended(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
method public boolean isPackageSuspended();
method @CheckResult public abstract boolean isPermissionRevokedByPolicy(@NonNull String, @NonNull String);
method public abstract boolean isSafeMode();
- method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int);
- method public abstract java.util.List<android.content.pm.ProviderInfo> queryContentProviders(String, int, int);
- method public abstract java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(String, int);
- method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
- method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(@Nullable android.content.ComponentName, @Nullable android.content.Intent[], android.content.Intent, int);
- method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
- method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
- method public abstract java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method @Deprecated public abstract void removePackageFromPreferred(String);
- method public abstract void removePermission(String);
- method public abstract android.content.pm.ResolveInfo resolveActivity(android.content.Intent, int);
- method public abstract android.content.pm.ProviderInfo resolveContentProvider(String, int);
- method public abstract android.content.pm.ResolveInfo resolveService(android.content.Intent, int);
+ method @NonNull public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(@NonNull android.content.Intent, int);
+ method @NonNull public abstract java.util.List<android.content.pm.ProviderInfo> queryContentProviders(@Nullable String, int, int);
+ method @NonNull public abstract java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(@NonNull String, int);
+ method @Nullable public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(@NonNull android.content.Intent, int);
+ method @NonNull public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(@Nullable android.content.ComponentName, @Nullable android.content.Intent[], @NonNull android.content.Intent, int);
+ method @NonNull public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(@NonNull android.content.Intent, int);
+ method @NonNull public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentServices(@NonNull android.content.Intent, int);
+ method @NonNull public abstract java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Deprecated public abstract void removePackageFromPreferred(@NonNull String);
+ method public abstract void removePermission(@NonNull String);
+ method @Nullable public abstract android.content.pm.ResolveInfo resolveActivity(@NonNull android.content.Intent, int);
+ method @Nullable public abstract android.content.pm.ProviderInfo resolveContentProvider(@NonNull String, int);
+ method @Nullable public abstract android.content.pm.ResolveInfo resolveService(@NonNull android.content.Intent, int);
method public abstract void setApplicationCategoryHint(@NonNull String, int);
method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public abstract void setApplicationEnabledSetting(@NonNull String, int, int);
method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public abstract void setComponentEnabledSetting(@NonNull android.content.ComponentName, int, int);
- method public abstract void setInstallerPackageName(String, String);
+ method public abstract void setInstallerPackageName(@NonNull String, @Nullable String);
method public abstract void updateInstantAppCookie(@Nullable byte[]);
method public abstract void verifyPendingInstall(int, int);
field public static final int CERT_INPUT_RAW_X509 = 0; // 0x0
diff --git a/api/system-current.txt b/api/system-current.txt
index 48b1385..8ee1e0a 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -1593,46 +1593,46 @@
}
public abstract class PackageManager {
- method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
+ method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void addOnPermissionsChangeListener(@NonNull android.content.pm.PackageManager.OnPermissionsChangedListener);
method public abstract boolean arePermissionsIndividuallyControlled();
- method public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(String);
+ method @NonNull public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(@NonNull String);
method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public android.content.pm.ApplicationInfo getApplicationInfoAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
method @NonNull public android.content.pm.dex.ArtManager getArtManager();
method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_SHARED_LIBRARIES) public java.util.List<android.content.pm.SharedLibraryInfo> getDeclaredSharedLibraries(@NonNull String, int);
- method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract String getDefaultBrowserPackageNameAsUser(int);
+ method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract String getDefaultBrowserPackageNameAsUser(int);
method @Nullable @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public CharSequence getHarmfulAppWarning(@NonNull String);
method @Nullable public String getIncidentReportApproverPackageName();
- method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
+ method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_INSTANT_APPS) public abstract android.graphics.drawable.Drawable getInstantAppIcon(String);
- method public abstract android.content.ComponentName getInstantAppInstallerComponent();
- method public abstract android.content.ComponentName getInstantAppResolverSettingsComponent();
+ method @Nullable public abstract android.content.ComponentName getInstantAppInstallerComponent();
+ method @Nullable public abstract android.content.ComponentName getInstantAppResolverSettingsComponent();
method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_INSTANT_APPS) public abstract java.util.List<android.content.pm.InstantAppInfo> getInstantApps();
- method public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(String);
- method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract int getIntentVerificationStatusAsUser(String, int);
- method @android.content.pm.PackageManager.PermissionFlags @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.GET_RUNTIME_PERMISSIONS}) public abstract int getPermissionFlags(String, String, @NonNull android.os.UserHandle);
+ method @NonNull public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(@NonNull String);
+ method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract int getIntentVerificationStatusAsUser(@NonNull String, int);
+ method @android.content.pm.PackageManager.PermissionFlags @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.GET_RUNTIME_PERMISSIONS}) public abstract int getPermissionFlags(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] getUnsuspendablePackages(@NonNull String[]);
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
- method @Deprecated public abstract int installExistingPackage(String) throws android.content.pm.PackageManager.NameNotFoundException;
- method @Deprecated public abstract int installExistingPackage(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, android.os.UserHandle);
+ method @Deprecated public abstract int installExistingPackage(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Deprecated public abstract int installExistingPackage(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(@NonNull android.content.Intent, int, android.os.UserHandle);
method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentActivitiesAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProvidersAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentServicesAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
- method public abstract void registerDexModule(String, @Nullable android.content.pm.PackageManager.DexModuleRegisterCallback);
- method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
+ method public abstract void registerDexModule(@NonNull String, @Nullable android.content.pm.PackageManager.DexModuleRegisterCallback);
+ method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void removeOnPermissionsChangeListener(@NonNull android.content.pm.PackageManager.OnPermissionsChangedListener);
method @Deprecated public void replacePreferredActivity(@NonNull android.content.IntentFilter, int, @NonNull java.util.List<android.content.ComponentName>, @NonNull android.content.ComponentName);
method @RequiresPermission(android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS) public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
method public void sendDeviceCustomizationReadyBroadcast();
- method @RequiresPermission(allOf={android.Manifest.permission.SET_PREFERRED_APPLICATIONS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract boolean setDefaultBrowserPackageNameAsUser(String, int);
+ method @RequiresPermission(allOf={android.Manifest.permission.SET_PREFERRED_APPLICATIONS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract boolean setDefaultBrowserPackageNameAsUser(@Nullable String, int);
method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setDistractingPackageRestrictions(@NonNull String[], int);
method @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public void setHarmfulAppWarning(@NonNull String, @Nullable CharSequence);
method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String);
method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo);
method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setSyntheticAppDetailsActivityEnabled(@NonNull String, boolean);
- method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(String, boolean);
- method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(String, int, int);
- method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(String, String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle);
- method @RequiresPermission(android.Manifest.permission.INTENT_FILTER_VERIFICATION_AGENT) public abstract void verifyIntentFilter(int, int, java.util.List<java.lang.String>);
+ method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(@NonNull String, boolean);
+ method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String, int, int);
+ method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle);
+ method @RequiresPermission(android.Manifest.permission.INTENT_FILTER_VERIFICATION_AGENT) public abstract void verifyIntentFilter(int, int, @NonNull java.util.List<java.lang.String>);
field public static final String ACTION_REQUEST_PERMISSIONS = "android.content.pm.action.REQUEST_PERMISSIONS";
field public static final String EXTRA_REQUEST_PERMISSIONS_NAMES = "android.content.pm.extra.REQUEST_PERMISSIONS_NAMES";
field public static final String EXTRA_REQUEST_PERMISSIONS_RESULTS = "android.content.pm.extra.REQUEST_PERMISSIONS_RESULTS";
diff --git a/api/test-current.txt b/api/test-current.txt
index 8dff8f4..7762baa 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -663,20 +663,20 @@
public abstract class PackageManager {
method public abstract boolean arePermissionsIndividuallyControlled();
- method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract String getDefaultBrowserPackageNameAsUser(int);
+ method @Nullable @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract String getDefaultBrowserPackageNameAsUser(int);
method @Nullable public String getIncidentReportApproverPackageName();
- method public abstract int getInstallReason(String, @NonNull android.os.UserHandle);
- method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
- method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
+ method public abstract int getInstallReason(@NonNull String, @NonNull android.os.UserHandle);
+ method @NonNull public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
+ method @NonNull @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
method @Nullable public abstract String[] getNamesForUids(int[]);
- method public abstract String getPermissionControllerPackageName();
- method @RequiresPermission(anyOf={"android.permission.GRANT_RUNTIME_PERMISSIONS", "android.permission.REVOKE_RUNTIME_PERMISSIONS", "android.permission.GET_RUNTIME_PERMISSIONS"}) public abstract int getPermissionFlags(String, String, @NonNull android.os.UserHandle);
+ method @NonNull public abstract String getPermissionControllerPackageName();
+ method @RequiresPermission(anyOf={"android.permission.GRANT_RUNTIME_PERMISSIONS", "android.permission.REVOKE_RUNTIME_PERMISSIONS", "android.permission.GET_RUNTIME_PERMISSIONS"}) public abstract int getPermissionFlags(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
method @NonNull public abstract String getServicesSystemSharedLibraryPackageName();
method @NonNull public abstract String getSharedSystemSharedLibraryPackageName();
- method public String getWellbeingPackageName();
+ method @Nullable public String getWellbeingPackageName();
method @RequiresPermission("android.permission.GRANT_RUNTIME_PERMISSIONS") public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
method @RequiresPermission("android.permission.REVOKE_RUNTIME_PERMISSIONS") public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
- method @RequiresPermission(anyOf={"android.permission.GRANT_RUNTIME_PERMISSIONS", "android.permission.REVOKE_RUNTIME_PERMISSIONS"}) public abstract void updatePermissionFlags(String, String, int, int, @NonNull android.os.UserHandle);
+ method @RequiresPermission(anyOf={"android.permission.GRANT_RUNTIME_PERMISSIONS", "android.permission.REVOKE_RUNTIME_PERMISSIONS"}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, int, int, @NonNull android.os.UserHandle);
field public static final String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage";
field public static final String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption";
field public static final int FLAG_PERMISSION_HIDDEN = 1024; // 0x400
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index b190b34..cf2ae7d 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -3214,7 +3214,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags)
+ public abstract PackageInfo getPackageInfo(@NonNull String packageName,
+ @PackageInfoFlags int flags)
throws NameNotFoundException;
/**
@@ -3239,7 +3240,7 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract PackageInfo getPackageInfo(VersionedPackage versionedPackage,
+ public abstract PackageInfo getPackageInfo(@NonNull VersionedPackage versionedPackage,
@PackageInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3263,25 +3264,25 @@
*/
@RequiresPermission(Manifest.permission.INTERACT_ACROSS_USERS)
@UnsupportedAppUsage
- public abstract PackageInfo getPackageInfoAsUser(String packageName,
+ public abstract PackageInfo getPackageInfoAsUser(@NonNull String packageName,
@PackageInfoFlags int flags, @UserIdInt int userId) throws NameNotFoundException;
/**
* Map from the current package names in use on the device to whatever
* the current canonical name of that package is.
- * @param names Array of current names to be mapped.
+ * @param packageNames Array of current names to be mapped.
* @return Returns an array of the same size as the original, containing
* the canonical name for each package.
*/
- public abstract String[] currentToCanonicalPackageNames(String[] names);
+ public abstract String[] currentToCanonicalPackageNames(@NonNull String[] packageNames);
/**
* Map from a packages canonical name to the current name in use on the device.
- * @param names Array of new names to be mapped.
+ * @param packageNames Array of new names to be mapped.
* @return Returns an array of the same size as the original, containing
* the current name for each package.
*/
- public abstract String[] canonicalToCurrentPackageNames(String[] names);
+ public abstract String[] canonicalToCurrentPackageNames(@NonNull String[] packageNames);
/**
* Returns a "good" intent to launch a front-door activity in a package.
@@ -3360,7 +3361,7 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract int[] getPackageGids(String packageName, @PackageInfoFlags int flags)
+ public abstract int[] getPackageGids(@NonNull String packageName, @PackageInfoFlags int flags)
throws NameNotFoundException;
/**
@@ -3375,7 +3376,7 @@
* @throws NameNotFoundException if a package with the given name can not be
* found on the system.
*/
- public abstract int getPackageUid(String packageName, @PackageInfoFlags int flags)
+ public abstract int getPackageUid(@NonNull String packageName, @PackageInfoFlags int flags)
throws NameNotFoundException;
/**
@@ -3393,7 +3394,7 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract int getPackageUidAsUser(String packageName, @UserIdInt int userId)
+ public abstract int getPackageUidAsUser(@NonNull String packageName, @UserIdInt int userId)
throws NameNotFoundException;
/**
@@ -3411,13 +3412,13 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract int getPackageUidAsUser(String packageName, @PackageInfoFlags int flags,
- @UserIdInt int userId) throws NameNotFoundException;
+ public abstract int getPackageUidAsUser(@NonNull String packageName,
+ @PackageInfoFlags int flags, @UserIdInt int userId) throws NameNotFoundException;
/**
* Retrieve all of the information we know about a particular permission.
*
- * @param name The fully qualified name (i.e. com.google.permission.LOGIN)
+ * @param permissionName The fully qualified name (i.e. com.google.permission.LOGIN)
* of the permission you are interested in.
* @param flags Additional option flags to modify the data returned.
* @return Returns a {@link PermissionInfo} containing information about the
@@ -3425,13 +3426,13 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract PermissionInfo getPermissionInfo(String name, @PermissionInfoFlags int flags)
- throws NameNotFoundException;
+ public abstract PermissionInfo getPermissionInfo(@NonNull String permissionName,
+ @PermissionInfoFlags int flags) throws NameNotFoundException;
/**
* Query for all of the permissions associated with a particular group.
*
- * @param group The fully qualified name (i.e. com.google.permission.LOGIN)
+ * @param permissionGroup The fully qualified name (i.e. com.google.permission.LOGIN)
* of the permission group you are interested in. Use null to
* find all of the permissions not associated with a group.
* @param flags Additional option flags to modify the data returned.
@@ -3440,7 +3441,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract List<PermissionInfo> queryPermissionsByGroup(String group,
+ @NonNull
+ public abstract List<PermissionInfo> queryPermissionsByGroup(@NonNull String permissionGroup,
@PermissionInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3465,7 +3467,7 @@
* Retrieve all of the information we know about a particular group of
* permissions.
*
- * @param name The fully qualified name (i.e.
+ * @param permissionName The fully qualified name (i.e.
* com.google.permission_group.APPS) of the permission you are
* interested in.
* @param flags Additional option flags to modify the data returned.
@@ -3474,7 +3476,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract PermissionGroupInfo getPermissionGroupInfo(String name,
+ @NonNull
+ public abstract PermissionGroupInfo getPermissionGroupInfo(@NonNull String permissionName,
@PermissionGroupInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3484,6 +3487,7 @@
* @return Returns a list of {@link PermissionGroupInfo} containing
* information about all of the known permission groups.
*/
+ @NonNull
public abstract List<PermissionGroupInfo> getAllPermissionGroups(
@PermissionGroupInfoFlags int flags);
@@ -3504,12 +3508,14 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract ApplicationInfo getApplicationInfo(String packageName,
+ @NonNull
+ public abstract ApplicationInfo getApplicationInfo(@NonNull String packageName,
@ApplicationInfoFlags int flags) throws NameNotFoundException;
/** {@hide} */
+ @NonNull
@UnsupportedAppUsage
- public abstract ApplicationInfo getApplicationInfoAsUser(String packageName,
+ public abstract ApplicationInfo getApplicationInfoAsUser(@NonNull String packageName,
@ApplicationInfoFlags int flags, @UserIdInt int userId) throws NameNotFoundException;
/**
@@ -3552,7 +3558,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract ActivityInfo getActivityInfo(ComponentName component,
+ @NonNull
+ public abstract ActivityInfo getActivityInfo(@NonNull ComponentName component,
@ComponentInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3568,7 +3575,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract ActivityInfo getReceiverInfo(ComponentName component,
+ @NonNull
+ public abstract ActivityInfo getReceiverInfo(@NonNull ComponentName component,
@ComponentInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3583,7 +3591,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract ServiceInfo getServiceInfo(ComponentName component,
+ @NonNull
+ public abstract ServiceInfo getServiceInfo(@NonNull ComponentName component,
@ComponentInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3599,7 +3608,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract ProviderInfo getProviderInfo(ComponentName component,
+ @NonNull
+ public abstract ProviderInfo getProviderInfo(@NonNull ComponentName component,
@ComponentInfoFlags int flags) throws NameNotFoundException;
/**
@@ -3612,7 +3622,8 @@
* @throws NameNotFoundException if a module with the given name cannot be
* found on the system.
*/
- public ModuleInfo getModuleInfo(String packageName, @ModuleInfoFlags int flags)
+ @NonNull
+ public ModuleInfo getModuleInfo(@NonNull String packageName, @ModuleInfoFlags int flags)
throws NameNotFoundException {
throw new UnsupportedOperationException(
"getModuleInfo not implemented in subclass");
@@ -3626,7 +3637,8 @@
* module, containing information about the module. In the unlikely case
* there are no installed modules, an empty list is returned.
*/
- public @NonNull List<ModuleInfo> getInstalledModules(@ModuleInfoFlags int flags) {
+ @NonNull
+ public List<ModuleInfo> getInstalledModules(@ModuleInfoFlags int flags) {
throw new UnsupportedOperationException(
"getInstalledModules not implemented in subclass");
}
@@ -3644,6 +3656,7 @@
* applications with data directory i.e. applications which had been
* deleted with {@code DONT_DELETE_DATA} flag set).
*/
+ @NonNull
public abstract List<PackageInfo> getInstalledPackages(@PackageInfoFlags int flags);
/**
@@ -3661,8 +3674,9 @@
* applications with data directory i.e. applications which had been
* deleted with {@code DONT_DELETE_DATA} flag set).
*/
+ @NonNull
public abstract List<PackageInfo> getPackagesHoldingPermissions(
- String[] permissions, @PackageInfoFlags int flags);
+ @NonNull String[] permissions, @PackageInfoFlags int flags);
/**
* Return a List of all packages that are installed on the device, for a
@@ -3680,6 +3694,7 @@
* deleted with {@code DONT_DELETE_DATA} flag set).
* @hide
*/
+ @NonNull
@TestApi
@SystemApi
@RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
@@ -3690,8 +3705,8 @@
* Check whether a particular package has been granted a particular
* permission.
*
- * @param permName The name of the permission you are checking for.
- * @param pkgName The name of the package you are checking against.
+ * @param permissionName The name of the permission you are checking for.
+ * @param packageName The name of the package you are checking against.
*
* @return If the package has the permission, PERMISSION_GRANTED is
* returned. If it does not have the permission, PERMISSION_DENIED
@@ -3701,7 +3716,9 @@
* @see #PERMISSION_DENIED
*/
@CheckResult
- public abstract @PermissionResult int checkPermission(String permName, String pkgName);
+ @PermissionResult
+ public abstract int checkPermission(@NonNull String permissionName,
+ @NonNull String packageName);
/**
* Checks whether a particular permissions has been revoked for a
@@ -3710,14 +3727,14 @@
* permissions, hence the only way for an app to get such a permission
* is by a policy change.
*
- * @param permName The name of the permission you are checking for.
- * @param pkgName The name of the package you are checking against.
+ * @param permissionName The name of the permission you are checking for.
+ * @param packageName The name of the package you are checking against.
*
* @return Whether the permission is restricted by policy.
*/
@CheckResult
- public abstract boolean isPermissionRevokedByPolicy(@NonNull String permName,
- @NonNull String pkgName);
+ public abstract boolean isPermissionRevokedByPolicy(@NonNull String permissionName,
+ @NonNull String packageName);
/**
* Gets the package name of the component controlling runtime permissions.
@@ -3726,6 +3743,7 @@
*
* @hide
*/
+ @NonNull
@TestApi
public abstract String getPermissionControllerPackageName();
@@ -3761,7 +3779,7 @@
*
* @see #removePermission(String)
*/
- public abstract boolean addPermission(PermissionInfo info);
+ public abstract boolean addPermission(@NonNull PermissionInfo info);
/**
* Like {@link #addPermission(PermissionInfo)} but asynchronously
@@ -3770,7 +3788,7 @@
* expense of no guarantee the added permission will be retained if
* the device is rebooted before it is written.
*/
- public abstract boolean addPermissionAsync(PermissionInfo info);
+ public abstract boolean addPermissionAsync(@NonNull PermissionInfo info);
/**
* Removes a permission that was previously added with
@@ -3778,14 +3796,14 @@
* -- you are only allowed to remove permissions that you are allowed
* to add.
*
- * @param name The name of the permission to remove.
+ * @param permissionName The name of the permission to remove.
*
* @throws SecurityException if you are not allowed to remove the
* given permission name.
*
* @see #addPermission(PermissionInfo)
*/
- public abstract void removePermission(String name);
+ public abstract void removePermission(@NonNull String permissionName);
/**
* Permission flags set when granting or revoking a permission.
@@ -3880,8 +3898,9 @@
android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
android.Manifest.permission.GET_RUNTIME_PERMISSIONS
})
- public abstract @PermissionFlags int getPermissionFlags(String permissionName,
- String packageName, @NonNull UserHandle user);
+ @PermissionFlags
+ public abstract int getPermissionFlags(@NonNull String permissionName,
+ @NonNull String packageName, @NonNull UserHandle user);
/**
* Updates the flags associated with a permission by replacing the flags in
@@ -3901,9 +3920,9 @@
android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS,
android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS
})
- public abstract void updatePermissionFlags(String permissionName,
- String packageName, @PermissionFlags int flagMask, @PermissionFlags int flagValues,
- @NonNull UserHandle user);
+ public abstract void updatePermissionFlags(@NonNull String permissionName,
+ @NonNull String packageName, @PermissionFlags int flagMask,
+ @PermissionFlags int flagValues, @NonNull UserHandle user);
/**
* Gets whether you should show UI with rationale for requesting a permission.
@@ -3911,13 +3930,13 @@
* which the permission is requested does not clearly communicate to the user
* what would be the benefit from grating this permission.
*
- * @param permission A permission your app wants to request.
+ * @param permissionName A permission your app wants to request.
* @return Whether you can show permission rationale UI.
*
* @hide
*/
@UnsupportedAppUsage
- public abstract boolean shouldShowRequestPermissionRationale(String permission);
+ public abstract boolean shouldShowRequestPermissionRationale(@NonNull String permissionName);
/**
* Returns an {@link android.content.Intent} suitable for passing to
@@ -3928,6 +3947,7 @@
*
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
public Intent buildRequestPermissionsIntent(@NonNull String[] permissions) {
if (ArrayUtils.isEmpty(permissions)) {
@@ -3946,8 +3966,8 @@
* with each other: they can share the same user-id, run instrumentation
* against each other, etc.
*
- * @param pkg1 First package name whose signature will be compared.
- * @param pkg2 Second package name whose signature will be compared.
+ * @param packageName1 First package name whose signature will be compared.
+ * @param packageName2 Second package name whose signature will be compared.
*
* @return Returns an integer indicating whether all signatures on the
* two packages match. The value is >= 0 ({@link #SIGNATURE_MATCH}) if
@@ -3957,7 +3977,9 @@
* @see #checkSignatures(int, int)
*/
@CheckResult
- public abstract @SignatureResult int checkSignatures(String pkg1, String pkg2);
+ @SignatureResult
+ public abstract int checkSignatures(@NonNull String packageName1,
+ @NonNull String packageName2);
/**
* Like {@link #checkSignatures(String, String)}, but takes UIDs of
@@ -4030,7 +4052,7 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract int getUidForSharedUser(String sharedUserName)
+ public abstract int getUidForSharedUser(@NonNull String sharedUserName)
throws NameNotFoundException;
/**
@@ -4049,6 +4071,7 @@
* applications with data directory i.e. applications which had been
* deleted with {@code DONT_DELETE_DATA} flag set).
*/
+ @NonNull
public abstract List<ApplicationInfo> getInstalledApplications(@ApplicationInfoFlags int flags);
/**
@@ -4071,6 +4094,7 @@
* deleted with {@code DONT_DELETE_DATA} flag set).
* @hide
*/
+ @NonNull
@TestApi
public abstract List<ApplicationInfo> getInstalledApplicationsAsUser(
@ApplicationInfoFlags int flags, @UserIdInt int userId);
@@ -4121,7 +4145,7 @@
* @see #getInstantAppCookieMaxBytes()
* @see #clearInstantAppCookie()
*/
- public abstract boolean isInstantApp(String packageName);
+ public abstract boolean isInstantApp(@NonNull String packageName);
/**
* Gets the maximum size in bytes of the cookie data an instant app
@@ -4208,6 +4232,7 @@
* available on the system, or null if none are installed.
*
*/
+ @Nullable
public abstract String[] getSystemSharedLibraryNames();
/**
@@ -4296,6 +4321,7 @@
* @return An array of FeatureInfo classes describing the features
* that are available on the system, or null if there are none(!!).
*/
+ @NonNull
public abstract FeatureInfo[] getSystemAvailableFeatures();
/**
@@ -4306,7 +4332,7 @@
*
* @return Returns true if the devices supports the feature, else false.
*/
- public abstract boolean hasSystemFeature(String name);
+ public abstract boolean hasSystemFeature(@NonNull String featureName);
/**
* Check whether the given feature name and version is one of the available
@@ -4317,7 +4343,7 @@
*
* @return Returns true if the devices supports the feature, else false.
*/
- public abstract boolean hasSystemFeature(String name, int version);
+ public abstract boolean hasSystemFeature(@NonNull String featureName, int version);
/**
* Determine the best action to perform for a given Intent. This is how
@@ -4345,7 +4371,9 @@
* found and there is no default set, returns a ResolveInfo object
* containing something else, such as the activity resolver.
*/
- public abstract ResolveInfo resolveActivity(Intent intent, @ResolveInfoFlags int flags);
+ @Nullable
+ public abstract ResolveInfo resolveActivity(@NonNull Intent intent,
+ @ResolveInfoFlags int flags);
/**
* Determine the best action to perform for a given Intent for a given user.
@@ -4375,9 +4403,10 @@
* containing something else, such as the activity resolver.
* @hide
*/
+ @Nullable
@UnsupportedAppUsage
- public abstract ResolveInfo resolveActivityAsUser(Intent intent, @ResolveInfoFlags int flags,
- @UserIdInt int userId);
+ public abstract ResolveInfo resolveActivityAsUser(@NonNull Intent intent,
+ @ResolveInfoFlags int flags, @UserIdInt int userId);
/**
* Retrieve all activities that can be performed for the given intent.
@@ -4394,7 +4423,8 @@
* {@link #resolveActivity}. If there are no matching activities, an
* empty list is returned.
*/
- public abstract List<ResolveInfo> queryIntentActivities(Intent intent,
+ @Nullable
+ public abstract List<ResolveInfo> queryIntentActivities(@NonNull Intent intent,
@ResolveInfoFlags int flags);
/**
@@ -4414,8 +4444,9 @@
* empty list is returned.
* @hide
*/
+ @Nullable
@UnsupportedAppUsage
- public abstract List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent,
+ public abstract List<ResolveInfo> queryIntentActivitiesAsUser(@NonNull Intent intent,
@ResolveInfoFlags int flags, @UserIdInt int userId);
/**
@@ -4469,8 +4500,9 @@
* included by one of the <var>specifics</var> intents. If there are
* no matching activities, an empty list is returned.
*/
+ @NonNull
public abstract List<ResolveInfo> queryIntentActivityOptions(@Nullable ComponentName caller,
- @Nullable Intent[] specifics, Intent intent, @ResolveInfoFlags int flags);
+ @Nullable Intent[] specifics, @NonNull Intent intent, @ResolveInfoFlags int flags);
/**
* Retrieve all receivers that can handle a broadcast of the given intent.
@@ -4481,7 +4513,8 @@
* each matching receiver, ordered from best to worst. If there are
* no matching receivers, an empty list or null is returned.
*/
- public abstract List<ResolveInfo> queryBroadcastReceivers(Intent intent,
+ @NonNull
+ public abstract List<ResolveInfo> queryBroadcastReceivers(@NonNull Intent intent,
@ResolveInfoFlags int flags);
/**
@@ -4496,9 +4529,10 @@
* no matching receivers, an empty list or null is returned.
* @hide
*/
+ @NonNull
@SystemApi
@RequiresPermission(Manifest.permission.INTERACT_ACROSS_USERS)
- public List<ResolveInfo> queryBroadcastReceiversAsUser(Intent intent,
+ public List<ResolveInfo> queryBroadcastReceiversAsUser(@NonNull Intent intent,
@ResolveInfoFlags int flags, UserHandle userHandle) {
return queryBroadcastReceiversAsUser(intent, flags, userHandle.getIdentifier());
}
@@ -4506,15 +4540,17 @@
/**
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
- public abstract List<ResolveInfo> queryBroadcastReceiversAsUser(Intent intent,
+ public abstract List<ResolveInfo> queryBroadcastReceiversAsUser(@NonNull Intent intent,
@ResolveInfoFlags int flags, @UserIdInt int userId);
- /** {@hide} */
+ /** @deprecated @hide */
+ @NonNull
@Deprecated
@UnsupportedAppUsage
- public List<ResolveInfo> queryBroadcastReceivers(Intent intent,
+ public List<ResolveInfo> queryBroadcastReceivers(@NonNull Intent intent,
@ResolveInfoFlags int flags, @UserIdInt int userId) {
final String msg = "Shame on you for calling the hidden API "
+ "queryBroadcastReceivers(). Shame!";
@@ -4536,13 +4572,15 @@
* that was determined to be the best action. Returns null if no
* matching service was found.
*/
- public abstract ResolveInfo resolveService(Intent intent, @ResolveInfoFlags int flags);
+ @Nullable
+ public abstract ResolveInfo resolveService(@NonNull Intent intent, @ResolveInfoFlags int flags);
/**
* @hide
*/
- public abstract ResolveInfo resolveServiceAsUser(Intent intent, @ResolveInfoFlags int flags,
- @UserIdInt int userId);
+ @Nullable
+ public abstract ResolveInfo resolveServiceAsUser(@NonNull Intent intent,
+ @ResolveInfoFlags int flags, @UserIdInt int userId);
/**
* Retrieve all services that can match the given intent.
@@ -4555,7 +4593,8 @@
* {@link #resolveService}. If there are no matching services, an
* empty list or null is returned.
*/
- public abstract List<ResolveInfo> queryIntentServices(Intent intent,
+ @NonNull
+ public abstract List<ResolveInfo> queryIntentServices(@NonNull Intent intent,
@ResolveInfoFlags int flags);
/**
@@ -4571,8 +4610,9 @@
* empty list or null is returned.
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
- public abstract List<ResolveInfo> queryIntentServicesAsUser(Intent intent,
+ public abstract List<ResolveInfo> queryIntentServicesAsUser(@NonNull Intent intent,
@ResolveInfoFlags int flags, @UserIdInt int userId);
/**
@@ -4608,9 +4648,10 @@
* no matching services, an empty list or null is returned.
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
public abstract List<ResolveInfo> queryIntentContentProvidersAsUser(
- Intent intent, @ResolveInfoFlags int flags, @UserIdInt int userId);
+ @NonNull Intent intent, @ResolveInfoFlags int flags, @UserIdInt int userId);
/**
* Retrieve all providers that can match the given intent.
@@ -4642,7 +4683,8 @@
* each matching provider, ordered from best to worst. If there are
* no matching services, an empty list or null is returned.
*/
- public abstract List<ResolveInfo> queryIntentContentProviders(Intent intent,
+ @NonNull
+ public abstract List<ResolveInfo> queryIntentContentProviders(@NonNull Intent intent,
@ResolveInfoFlags int flags);
/**
@@ -4659,21 +4701,23 @@
* @return A {@link ProviderInfo} object containing information about the
* provider. If a provider was not found, returns null.
*/
- public abstract ProviderInfo resolveContentProvider(String authority,
+ @Nullable
+ public abstract ProviderInfo resolveContentProvider(@NonNull String authority,
@ComponentInfoFlags int flags);
/**
* Find a single content provider by its base path name.
*
- * @param name The name of the provider to find.
+ * @param providerName The name of the provider to find.
* @param flags Additional option flags to modify the data returned.
* @param userId The user id.
* @return A {@link ProviderInfo} object containing information about the
* provider. If a provider was not found, returns null.
* @hide
*/
+ @Nullable
@UnsupportedAppUsage
- public abstract ProviderInfo resolveContentProviderAsUser(String name,
+ public abstract ProviderInfo resolveContentProviderAsUser(@NonNull String providerName,
@ComponentInfoFlags int flags, @UserIdInt int userId);
/**
@@ -4693,8 +4737,9 @@
* <var>processName</var> is null, all known content providers.
* <em>If there are no matching providers, null is returned.</em>
*/
+ @NonNull
public abstract List<ProviderInfo> queryContentProviders(
- String processName, int uid, @ComponentInfoFlags int flags);
+ @Nullable String processName, int uid, @ComponentInfoFlags int flags);
/**
* Same as {@link #queryContentProviders}, except when {@code metaDataKey} is not null,
@@ -4711,8 +4756,9 @@
*
* @hide
*/
- public List<ProviderInfo> queryContentProviders(
- String processName, int uid, @ComponentInfoFlags int flags, String metaDataKey) {
+ @NonNull
+ public List<ProviderInfo> queryContentProviders(@Nullable String processName,
+ int uid, @ComponentInfoFlags int flags, String metaDataKey) {
// Provide the default implementation for mocks.
return queryContentProviders(processName, uid, flags);
}
@@ -4730,7 +4776,8 @@
* @throws NameNotFoundException if a package with the given name cannot be
* found on the system.
*/
- public abstract InstrumentationInfo getInstrumentationInfo(ComponentName className,
+ @NonNull
+ public abstract InstrumentationInfo getInstrumentationInfo(@NonNull ComponentName className,
@InstrumentationInfoFlags int flags) throws NameNotFoundException;
/**
@@ -4745,7 +4792,8 @@
* entry for each matching instrumentation. If there are no
* instrumentation available, returns an empty list.
*/
- public abstract List<InstrumentationInfo> queryInstrumentation(String targetPackage,
+ @NonNull
+ public abstract List<InstrumentationInfo> queryInstrumentation(@NonNull String targetPackage,
@InstrumentationInfoFlags int flags);
/**
@@ -4765,8 +4813,9 @@
* @return Returns a Drawable holding the requested image. Returns null if
* an image could not be found for any reason.
*/
- public abstract Drawable getDrawable(String packageName, @DrawableRes int resid,
- ApplicationInfo appInfo);
+ @Nullable
+ public abstract Drawable getDrawable(@NonNull String packageName, @DrawableRes int resid,
+ @Nullable ApplicationInfo appInfo);
/**
* Retrieve the icon associated with an activity. Given the full name of
@@ -4783,7 +4832,8 @@
*
* @see #getActivityIcon(Intent)
*/
- public abstract Drawable getActivityIcon(ComponentName activityName)
+ @NonNull
+ public abstract Drawable getActivityIcon(@NonNull ComponentName activityName)
throws NameNotFoundException;
/**
@@ -4803,7 +4853,8 @@
*
* @see #getActivityIcon(ComponentName)
*/
- public abstract Drawable getActivityIcon(Intent intent)
+ @NonNull
+ public abstract Drawable getActivityIcon(@NonNull Intent intent)
throws NameNotFoundException;
/**
@@ -4819,7 +4870,8 @@
* activity could not be loaded.
* @see #getActivityBanner(Intent)
*/
- public abstract Drawable getActivityBanner(ComponentName activityName)
+ @Nullable
+ public abstract Drawable getActivityBanner(@NonNull ComponentName activityName)
throws NameNotFoundException;
/**
@@ -4837,7 +4889,8 @@
* matching the given intent could not be loaded.
* @see #getActivityBanner(ComponentName)
*/
- public abstract Drawable getActivityBanner(Intent intent)
+ @Nullable
+ public abstract Drawable getActivityBanner(@NonNull Intent intent)
throws NameNotFoundException;
/**
@@ -4846,6 +4899,7 @@
*
* @return Drawable Image of the icon.
*/
+ @NonNull
public abstract Drawable getDefaultActivityIcon();
/**
@@ -4859,7 +4913,8 @@
*
* @see #getApplicationIcon(String)
*/
- public abstract Drawable getApplicationIcon(ApplicationInfo info);
+ @NonNull
+ public abstract Drawable getApplicationIcon(@NonNull ApplicationInfo info);
/**
* Retrieve the icon associated with an application. Given the name of the
@@ -4877,7 +4932,8 @@
*
* @see #getApplicationIcon(ApplicationInfo)
*/
- public abstract Drawable getApplicationIcon(String packageName)
+ @NonNull
+ public abstract Drawable getApplicationIcon(@NonNull String packageName)
throws NameNotFoundException;
/**
@@ -4888,7 +4944,8 @@
* banner specified.
* @see #getApplicationBanner(String)
*/
- public abstract Drawable getApplicationBanner(ApplicationInfo info);
+ @Nullable
+ public abstract Drawable getApplicationBanner(@NonNull ApplicationInfo info);
/**
* Retrieve the banner associated with an application. Given the name of the
@@ -4904,7 +4961,8 @@
* application could not be loaded.
* @see #getApplicationBanner(ApplicationInfo)
*/
- public abstract Drawable getApplicationBanner(String packageName)
+ @Nullable
+ public abstract Drawable getApplicationBanner(@NonNull String packageName)
throws NameNotFoundException;
/**
@@ -4920,7 +4978,8 @@
* activity could not be loaded.
* @see #getActivityLogo(Intent)
*/
- public abstract Drawable getActivityLogo(ComponentName activityName)
+ @Nullable
+ public abstract Drawable getActivityLogo(@NonNull ComponentName activityName)
throws NameNotFoundException;
/**
@@ -4941,7 +5000,8 @@
*
* @see #getActivityLogo(ComponentName)
*/
- public abstract Drawable getActivityLogo(Intent intent)
+ @Nullable
+ public abstract Drawable getActivityLogo(@NonNull Intent intent)
throws NameNotFoundException;
/**
@@ -4955,7 +5015,8 @@
*
* @see #getApplicationLogo(String)
*/
- public abstract Drawable getApplicationLogo(ApplicationInfo info);
+ @Nullable
+ public abstract Drawable getApplicationLogo(@NonNull ApplicationInfo info);
/**
* Retrieve the logo associated with an application. Given the name of the
@@ -4974,7 +5035,8 @@
*
* @see #getApplicationLogo(ApplicationInfo)
*/
- public abstract Drawable getApplicationLogo(String packageName)
+ @Nullable
+ public abstract Drawable getApplicationLogo(@NonNull String packageName)
throws NameNotFoundException;
/**
@@ -4988,12 +5050,14 @@
* is performed in place and the original drawable is returned.
* </p>
*
- * @param icon The icon to badge.
+ * @param drawable The drawable to badge.
* @param user The target user.
* @return A drawable that combines the original icon and a badge as
* determined by the system.
*/
- public abstract Drawable getUserBadgedIcon(Drawable icon, UserHandle user);
+ @NonNull
+ public abstract Drawable getUserBadgedIcon(@NonNull Drawable drawable,
+ @NonNull UserHandle user);
/**
* If the target user is a managed profile of the calling user or the caller
@@ -5019,8 +5083,9 @@
* @return A drawable that combines the original drawable and a badge as
* determined by the system.
*/
- public abstract Drawable getUserBadgedDrawableForDensity(Drawable drawable,
- UserHandle user, Rect badgeLocation, int badgeDensity);
+ @NonNull
+ public abstract Drawable getUserBadgedDrawableForDensity(@NonNull Drawable drawable,
+ @NonNull UserHandle user, @Nullable Rect badgeLocation, int badgeDensity);
/**
* If the target user is a managed profile of the calling user or the caller
@@ -5034,8 +5099,9 @@
* @return the drawable or null if no drawable is required.
* @hide
*/
+ @Nullable
@UnsupportedAppUsage
- public abstract Drawable getUserBadgeForDensity(UserHandle user, int density);
+ public abstract Drawable getUserBadgeForDensity(@NonNull UserHandle user, int density);
/**
* If the target user is a managed profile of the calling user or the caller
@@ -5051,8 +5117,10 @@
* @return the drawable or null if no drawable is required.
* @hide
*/
+ @Nullable
@UnsupportedAppUsage
- public abstract Drawable getUserBadgeForDensityNoBackground(UserHandle user, int density);
+ public abstract Drawable getUserBadgeForDensityNoBackground(@NonNull UserHandle user,
+ int density);
/**
* If the target user is a managed profile of the calling user or the caller
@@ -5065,7 +5133,9 @@
* @return A label that combines the original label and a badge as
* determined by the system.
*/
- public abstract CharSequence getUserBadgedLabel(CharSequence label, UserHandle user);
+ @NonNull
+ public abstract CharSequence getUserBadgedLabel(@NonNull CharSequence label,
+ @NonNull UserHandle user);
/**
* Retrieve text from a package. This is a low-level API used by
@@ -5084,8 +5154,9 @@
* @return Returns a CharSequence holding the requested text. Returns null
* if the text could not be found for any reason.
*/
- public abstract CharSequence getText(String packageName, @StringRes int resid,
- ApplicationInfo appInfo);
+ @Nullable
+ public abstract CharSequence getText(@NonNull String packageName, @StringRes int resid,
+ @Nullable ApplicationInfo appInfo);
/**
* Retrieve an XML file from a package. This is a low-level API used to
@@ -5103,8 +5174,9 @@
* data. Returns null if the xml resource could not be found for any
* reason.
*/
- public abstract XmlResourceParser getXml(String packageName, @XmlRes int resid,
- ApplicationInfo appInfo);
+ @Nullable
+ public abstract XmlResourceParser getXml(@NonNull String packageName, @XmlRes int resid,
+ @Nullable ApplicationInfo appInfo);
/**
* Return the label to use for this application.
@@ -5113,7 +5185,8 @@
* it could not be found for any reason.
* @param info The application to get the label of.
*/
- public abstract CharSequence getApplicationLabel(ApplicationInfo info);
+ @NonNull
+ public abstract CharSequence getApplicationLabel(@NonNull ApplicationInfo info);
/**
* Retrieve the resources associated with an activity. Given the full
@@ -5130,7 +5203,8 @@
*
* @see #getResourcesForApplication(ApplicationInfo)
*/
- public abstract Resources getResourcesForActivity(ComponentName activityName)
+ @NonNull
+ public abstract Resources getResourcesForActivity(@NonNull ComponentName activityName)
throws NameNotFoundException;
/**
@@ -5143,7 +5217,8 @@
* @throws NameNotFoundException Thrown if the resources for the given
* application could not be loaded (most likely because it was uninstalled).
*/
- public abstract Resources getResourcesForApplication(ApplicationInfo app)
+ @NonNull
+ public abstract Resources getResourcesForApplication(@NonNull ApplicationInfo app)
throws NameNotFoundException;
/**
@@ -5152,7 +5227,7 @@
* calls getResources() to return its application's resources. If the
* appPackageName cannot be found, NameNotFoundException is thrown.
*
- * @param appPackageName Package name of the application whose resources
+ * @param packageName Package name of the application whose resources
* are to be retrieved.
*
* @return Returns the application's Resources.
@@ -5161,12 +5236,14 @@
*
* @see #getResourcesForApplication(ApplicationInfo)
*/
- public abstract Resources getResourcesForApplication(String appPackageName)
+ @NonNull
+ public abstract Resources getResourcesForApplication(@NonNull String packageName)
throws NameNotFoundException;
/** @hide */
+ @NonNull
@UnsupportedAppUsage
- public abstract Resources getResourcesForApplicationAsUser(String appPackageName,
+ public abstract Resources getResourcesForApplicationAsUser(@NonNull String packageName,
@UserIdInt int userId) throws NameNotFoundException;
/**
@@ -5178,7 +5255,9 @@
* @return A PackageInfo object containing information about the package
* archive. If the package could not be parsed, returns null.
*/
- public PackageInfo getPackageArchiveInfo(String archiveFilePath, @PackageInfoFlags int flags) {
+ @Nullable
+ public PackageInfo getPackageArchiveInfo(@NonNull String archiveFilePath,
+ @PackageInfoFlags int flags) {
final PackageParser parser = new PackageParser();
parser.setCallback(new PackageParser.CallbackImpl(this));
final File apkFile = new File(archiveFilePath);
@@ -5212,7 +5291,8 @@
*/
@Deprecated
@SystemApi
- public abstract int installExistingPackage(String packageName) throws NameNotFoundException;
+ public abstract int installExistingPackage(@NonNull String packageName)
+ throws NameNotFoundException;
/**
* If there is already an application with the given package name installed
@@ -5223,8 +5303,8 @@
*/
@Deprecated
@SystemApi
- public abstract int installExistingPackage(String packageName, @InstallReason int installReason)
- throws NameNotFoundException;
+ public abstract int installExistingPackage(@NonNull String packageName,
+ @InstallReason int installReason) throws NameNotFoundException;
/**
* If there is already an application with the given package name installed
@@ -5239,8 +5319,8 @@
Manifest.permission.INSTALL_PACKAGES,
Manifest.permission.INTERACT_ACROSS_USERS_FULL})
@UnsupportedAppUsage
- public abstract int installExistingPackageAsUser(String packageName, @UserIdInt int userId)
- throws NameNotFoundException;
+ public abstract int installExistingPackageAsUser(@NonNull String packageName,
+ @UserIdInt int userId) throws NameNotFoundException;
/**
* Allows a package listening to the
@@ -5316,7 +5396,7 @@
@SystemApi
@RequiresPermission(android.Manifest.permission.INTENT_FILTER_VERIFICATION_AGENT)
public abstract void verifyIntentFilter(int verificationId, int verificationCode,
- List<String> failedDomains);
+ @NonNull List<String> failedDomains);
/**
* Get the status of a Domain Verification Result for an IntentFilter. This is
@@ -5340,7 +5420,8 @@
*/
@SystemApi
@RequiresPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL)
- public abstract int getIntentVerificationStatusAsUser(String packageName, @UserIdInt int userId);
+ public abstract int getIntentVerificationStatusAsUser(@NonNull String packageName,
+ @UserIdInt int userId);
/**
* Allow to change the status of a Intent Verification status for all IntentFilter of an App.
@@ -5364,8 +5445,8 @@
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS)
- public abstract boolean updateIntentVerificationStatusAsUser(String packageName, int status,
- @UserIdInt int userId);
+ public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String packageName,
+ int status, @UserIdInt int userId);
/**
* Get the list of IntentFilterVerificationInfo for a specific package and User.
@@ -5379,9 +5460,10 @@
*
* @hide
*/
+ @NonNull
@SystemApi
public abstract List<IntentFilterVerificationInfo> getIntentFilterVerifications(
- String packageName);
+ @NonNull String packageName);
/**
* Get the list of IntentFilter for a specific package.
@@ -5394,8 +5476,9 @@
*
* @hide
*/
+ @NonNull
@SystemApi
- public abstract List<IntentFilter> getAllIntentFilters(String packageName);
+ public abstract List<IntentFilter> getAllIntentFilters(@NonNull String packageName);
/**
* Get the default Browser package name for a specific user.
@@ -5407,6 +5490,7 @@
*
* @hide
*/
+ @Nullable
@TestApi
@SystemApi
@RequiresPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL)
@@ -5428,7 +5512,7 @@
@RequiresPermission(allOf = {
Manifest.permission.SET_PREFERRED_APPLICATIONS,
Manifest.permission.INTERACT_ACROSS_USERS_FULL})
- public abstract boolean setDefaultBrowserPackageNameAsUser(String packageName,
+ public abstract boolean setDefaultBrowserPackageNameAsUser(@Nullable String packageName,
@UserIdInt int userId);
/**
@@ -5446,13 +5530,13 @@
* @param installerPackageName The package name of the new installer. May be
* null to clear the association.
*/
- public abstract void setInstallerPackageName(String targetPackage,
- String installerPackageName);
+ public abstract void setInstallerPackageName(@NonNull String targetPackage,
+ @Nullable String installerPackageName);
/** @hide */
@SystemApi
@RequiresPermission(Manifest.permission.INSTALL_PACKAGES)
- public abstract void setUpdateAvailable(String packageName, boolean updateAvaialble);
+ public abstract void setUpdateAvailable(@NonNull String packageName, boolean updateAvaialble);
/**
* Attempts to delete a package. Since this may take a little while, the
@@ -5472,8 +5556,8 @@
*/
@RequiresPermission(Manifest.permission.DELETE_PACKAGES)
@UnsupportedAppUsage
- public abstract void deletePackage(String packageName, IPackageDeleteObserver observer,
- @DeleteFlags int flags);
+ public abstract void deletePackage(@NonNull String packageName,
+ @Nullable IPackageDeleteObserver observer, @DeleteFlags int flags);
/**
* Attempts to delete a package. Since this may take a little while, the
@@ -5495,7 +5579,8 @@
Manifest.permission.INTERACT_ACROSS_USERS_FULL})
@UnsupportedAppUsage
public abstract void deletePackageAsUser(@NonNull String packageName,
- IPackageDeleteObserver observer, @DeleteFlags int flags, @UserIdInt int userId);
+ @Nullable IPackageDeleteObserver observer, @DeleteFlags int flags,
+ @UserIdInt int userId);
/**
* Retrieve the package name of the application that installed a package. This identifies
@@ -5505,7 +5590,7 @@
* @throws IllegalArgumentException if the given package name is not installed
*/
@Nullable
- public abstract String getInstallerPackageName(String packageName);
+ public abstract String getInstallerPackageName(@NonNull String packageName);
/**
* Attempts to clear the user data directory of an application.
@@ -5522,8 +5607,8 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract void clearApplicationUserData(String packageName,
- IPackageDataObserver observer);
+ public abstract void clearApplicationUserData(@NonNull String packageName,
+ @Nullable IPackageDataObserver observer);
/**
* Attempts to delete the cache files associated with an application.
* Since this may take a little while, the result will
@@ -5541,8 +5626,8 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract void deleteApplicationCacheFiles(String packageName,
- IPackageDataObserver observer);
+ public abstract void deleteApplicationCacheFiles(@NonNull String packageName,
+ @Nullable IPackageDataObserver observer);
/**
* Attempts to delete the cache files associated with an application for a given user. Since
@@ -5563,8 +5648,8 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract void deleteApplicationCacheFilesAsUser(String packageName, int userId,
- IPackageDataObserver observer);
+ public abstract void deleteApplicationCacheFilesAsUser(@NonNull String packageName,
+ @UserIdInt int userId, @Nullable IPackageDataObserver observer);
/**
* Free storage by deleting LRU sorted list of cache files across
@@ -5589,14 +5674,15 @@
* @hide
*/
@UnsupportedAppUsage
- public void freeStorageAndNotify(long freeStorageSize, IPackageDataObserver observer) {
+ public void freeStorageAndNotify(long freeStorageSize,
+ @Nullable IPackageDataObserver observer) {
freeStorageAndNotify(null, freeStorageSize, observer);
}
/** {@hide} */
@UnsupportedAppUsage
- public abstract void freeStorageAndNotify(String volumeUuid, long freeStorageSize,
- IPackageDataObserver observer);
+ public abstract void freeStorageAndNotify(@Nullable String volumeUuid, long freeStorageSize,
+ @Nullable IPackageDataObserver observer);
/**
* Free storage by deleting LRU sorted list of cache files across
@@ -5622,13 +5708,14 @@
* @hide
*/
@UnsupportedAppUsage
- public void freeStorage(long freeStorageSize, IntentSender pi) {
+ public void freeStorage(long freeStorageSize, @Nullable IntentSender pi) {
freeStorage(null, freeStorageSize, pi);
}
/** {@hide} */
@UnsupportedAppUsage
- public abstract void freeStorage(String volumeUuid, long freeStorageSize, IntentSender pi);
+ public abstract void freeStorage(@Nullable String volumeUuid, long freeStorageSize,
+ @Nullable IntentSender pi);
/**
* Retrieve the size information for a package.
@@ -5651,8 +5738,8 @@
*/
@Deprecated
@UnsupportedAppUsage
- public abstract void getPackageSizeInfoAsUser(String packageName, @UserIdInt int userId,
- IPackageStatsObserver observer);
+ public abstract void getPackageSizeInfoAsUser(@NonNull String packageName,
+ @UserIdInt int userId, @Nullable IPackageStatsObserver observer);
/**
* Like {@link #getPackageSizeInfoAsUser(String, int, IPackageStatsObserver)}, but
@@ -5663,7 +5750,7 @@
*/
@Deprecated
@UnsupportedAppUsage
- public void getPackageSizeInfo(String packageName, IPackageStatsObserver observer) {
+ public void getPackageSizeInfo(@NonNull String packageName, IPackageStatsObserver observer) {
getPackageSizeInfoAsUser(packageName, getUserId(), observer);
}
@@ -5676,7 +5763,7 @@
* holders, see {@link android.app.role.RoleManager}.
*/
@Deprecated
- public abstract void addPackageToPreferred(String packageName);
+ public abstract void addPackageToPreferred(@NonNull String packageName);
/**
* @deprecated This function no longer does anything. It is the platform's
@@ -5687,7 +5774,7 @@
* holders, see {@link android.app.role.RoleManager}.
*/
@Deprecated
- public abstract void removePackageFromPreferred(String packageName);
+ public abstract void removePackageFromPreferred(@NonNull String packageName);
/**
* Retrieve the list of all currently configured preferred packages. The
@@ -5705,6 +5792,7 @@
* an app to be responsible for a particular role and to check current role
* holders, see {@link android.app.role.RoleManager}.
*/
+ @NonNull
@Deprecated
public abstract List<PackageInfo> getPreferredPackages(@PackageInfoFlags int flags);
@@ -5731,8 +5819,8 @@
* holders, see {@link android.app.role.RoleManager}.
*/
@Deprecated
- public abstract void addPreferredActivity(IntentFilter filter, int match,
- ComponentName[] set, ComponentName activity);
+ public abstract void addPreferredActivity(@NonNull IntentFilter filter, int match,
+ @Nullable ComponentName[] set, @NonNull ComponentName activity);
/**
* Same as {@link #addPreferredActivity(IntentFilter, int,
@@ -5749,8 +5837,8 @@
*/
@Deprecated
@UnsupportedAppUsage
- public void addPreferredActivityAsUser(IntentFilter filter, int match,
- ComponentName[] set, ComponentName activity, @UserIdInt int userId) {
+ public void addPreferredActivityAsUser(@NonNull IntentFilter filter, int match,
+ @Nullable ComponentName[] set, @NonNull ComponentName activity, @UserIdInt int userId) {
throw new RuntimeException("Not implemented. Must override in a subclass.");
}
@@ -5781,8 +5869,8 @@
*/
@Deprecated
@UnsupportedAppUsage
- public abstract void replacePreferredActivity(IntentFilter filter, int match,
- ComponentName[] set, ComponentName activity);
+ public abstract void replacePreferredActivity(@NonNull IntentFilter filter, int match,
+ @Nullable ComponentName[] set, @NonNull ComponentName activity);
/**
* Replaces an existing preferred activity mapping to the system, and if that were not present
@@ -5826,8 +5914,8 @@
*/
@Deprecated
@UnsupportedAppUsage
- public void replacePreferredActivityAsUser(IntentFilter filter, int match,
- ComponentName[] set, ComponentName activity, @UserIdInt int userId) {
+ public void replacePreferredActivityAsUser(@NonNull IntentFilter filter, int match,
+ @Nullable ComponentName[] set, @NonNull ComponentName activity, @UserIdInt int userId) {
throw new RuntimeException("Not implemented. Must override in a subclass.");
}
@@ -5848,7 +5936,7 @@
* holders, see {@link android.app.role.RoleManager}.
*/
@Deprecated
- public abstract void clearPackagePreferredActivities(String packageName);
+ public abstract void clearPackagePreferredActivities(@NonNull String packageName);
/**
* Retrieve all preferred activities, previously added with
@@ -5876,15 +5964,16 @@
*/
@Deprecated
public abstract int getPreferredActivities(@NonNull List<IntentFilter> outFilters,
- @NonNull List<ComponentName> outActivities, String packageName);
+ @NonNull List<ComponentName> outActivities, @Nullable String packageName);
/**
* Ask for the set of available 'home' activities and the current explicit
* default, if any.
* @hide
*/
+ @Nullable
@UnsupportedAppUsage
- public abstract ComponentName getHomeActivities(List<ResolveInfo> outActivities);
+ public abstract ComponentName getHomeActivities(@NonNull List<ResolveInfo> outActivities);
/**
* Set the enabled setting for a package component (activity, receiver, service, provider).
@@ -5984,7 +6073,7 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract void flushPackageRestrictionsAsUser(int userId);
+ public abstract void flushPackageRestrictionsAsUser(@UserIdInt int userId);
/**
* Puts the package in a hidden state, which is almost like an uninstalled state,
@@ -5994,8 +6083,8 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
- UserHandle userHandle);
+ public abstract boolean setApplicationHiddenSettingAsUser(@NonNull String packageName,
+ boolean hidden, @NonNull UserHandle userHandle);
/**
* Returns the hidden state of a package.
@@ -6003,8 +6092,8 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract boolean getApplicationHiddenSettingAsUser(String packageName,
- UserHandle userHandle);
+ public abstract boolean getApplicationHiddenSettingAsUser(@NonNull String packageName,
+ @NonNull UserHandle userHandle);
/**
* Return whether the device has been booted into safe mode.
@@ -6020,7 +6109,8 @@
*/
@SystemApi
@RequiresPermission(Manifest.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS)
- public abstract void addOnPermissionsChangeListener(OnPermissionsChangedListener listener);
+ public abstract void addOnPermissionsChangeListener(
+ @NonNull OnPermissionsChangedListener listener);
/**
* Remvoes a listener for permission changes for installed packages.
@@ -6031,7 +6121,8 @@
*/
@SystemApi
@RequiresPermission(Manifest.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS)
- public abstract void removeOnPermissionsChangeListener(OnPermissionsChangedListener listener);
+ public abstract void removeOnPermissionsChangeListener(
+ @NonNull OnPermissionsChangedListener listener);
/**
* Return the {@link KeySet} associated with the String alias for this
@@ -6041,14 +6132,16 @@
* application's AndroidManifest.xml.
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
- public abstract KeySet getKeySetByAlias(String packageName, String alias);
+ public abstract KeySet getKeySetByAlias(@NonNull String packageName, @NonNull String alias);
/** Return the signing {@link KeySet} for this application.
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
- public abstract KeySet getSigningKeySet(String packageName);
+ public abstract KeySet getSigningKeySet(@NonNull String packageName);
/**
* Return whether the package denoted by packageName has been signed by all
@@ -6058,7 +6151,7 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract boolean isSignedBy(String packageName, KeySet ks);
+ public abstract boolean isSignedBy(@NonNull String packageName, @NonNull KeySet ks);
/**
* Return whether the package denoted by packageName has been signed by all
@@ -6067,7 +6160,7 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract boolean isSignedByExactly(String packageName, KeySet ks);
+ public abstract boolean isSignedByExactly(@NonNull String packageName, @NonNull KeySet ks);
/**
* Flag to denote no restrictions. This should be used to clear any restrictions that may have
@@ -6284,7 +6377,7 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract boolean isPackageSuspendedForUser(String packageName, int userId);
+ public abstract boolean isPackageSuspendedForUser(@NonNull String packageName, int userId);
/**
* Query if an app is currently suspended.
@@ -6294,7 +6387,7 @@
*
* @see #isPackageSuspended()
*/
- public boolean isPackageSuspended(String packageName) throws NameNotFoundException {
+ public boolean isPackageSuspended(@NonNull String packageName) throws NameNotFoundException {
throw new UnsupportedOperationException("isPackageSuspended not implemented");
}
@@ -6378,23 +6471,26 @@
/** {@hide} */
@UnsupportedAppUsage
- public abstract void registerMoveCallback(MoveCallback callback, Handler handler);
+ public abstract void registerMoveCallback(@NonNull MoveCallback callback,
+ @NonNull Handler handler);
/** {@hide} */
@UnsupportedAppUsage
- public abstract void unregisterMoveCallback(MoveCallback callback);
+ public abstract void unregisterMoveCallback(@NonNull MoveCallback callback);
/** {@hide} */
@UnsupportedAppUsage
- public abstract int movePackage(String packageName, VolumeInfo vol);
+ public abstract int movePackage(@NonNull String packageName, @NonNull VolumeInfo vol);
/** {@hide} */
@UnsupportedAppUsage
- public abstract @Nullable VolumeInfo getPackageCurrentVolume(ApplicationInfo app);
+ public abstract @Nullable VolumeInfo getPackageCurrentVolume(@NonNull ApplicationInfo app);
/** {@hide} */
+ @NonNull
@UnsupportedAppUsage
- public abstract @NonNull List<VolumeInfo> getPackageCandidateVolumes(ApplicationInfo app);
+ public abstract List<VolumeInfo> getPackageCandidateVolumes(
+ @NonNull ApplicationInfo app);
/** {@hide} */
- public abstract int movePrimaryStorage(VolumeInfo vol);
+ public abstract int movePrimaryStorage(@NonNull VolumeInfo vol);
/** {@hide} */
public abstract @Nullable VolumeInfo getPrimaryStorageCurrentVolume();
/** {@hide} */
@@ -6407,6 +6503,7 @@
* @return identity that uniquely identifies current device
* @hide
*/
+ @NonNull
public abstract VerifierDeviceIdentity getVerifierDeviceIdentity();
/**
@@ -6437,8 +6534,8 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract void addCrossProfileIntentFilter(IntentFilter filter, int sourceUserId,
- int targetUserId, int flags);
+ public abstract void addCrossProfileIntentFilter(@NonNull IntentFilter filter,
+ @UserIdInt int sourceUserId, @UserIdInt int targetUserId, int flags);
/**
* Clearing {@code CrossProfileIntentFilter}s which have the specified user
@@ -6448,27 +6545,32 @@
* @hide
*/
@UnsupportedAppUsage
- public abstract void clearCrossProfileIntentFilters(int sourceUserId);
+ public abstract void clearCrossProfileIntentFilters(@UserIdInt int sourceUserId);
/**
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
- public abstract Drawable loadItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo);
+ public abstract Drawable loadItemIcon(@NonNull PackageItemInfo itemInfo,
+ @Nullable ApplicationInfo appInfo);
/**
* @hide
*/
+ @NonNull
@UnsupportedAppUsage
- public abstract Drawable loadUnbadgedItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo);
+ public abstract Drawable loadUnbadgedItemIcon(@NonNull PackageItemInfo itemInfo,
+ @Nullable ApplicationInfo appInfo);
/** {@hide} */
@UnsupportedAppUsage
- public abstract boolean isPackageAvailable(String packageName);
+ public abstract boolean isPackageAvailable(@NonNull String packageName);
/** {@hide} */
+ @NonNull
@UnsupportedAppUsage
- public static String installStatusToString(int status, String msg) {
+ public static String installStatusToString(int status, @Nullable String msg) {
final String str = installStatusToString(status);
if (msg != null) {
return str + ": " + msg;
@@ -6478,6 +6580,7 @@
}
/** {@hide} */
+ @NonNull
@UnsupportedAppUsage
public static String installStatusToString(int status) {
switch (status) {
@@ -6582,7 +6685,8 @@
}
/** {@hide} */
- public static String deleteStatusToString(int status, String msg) {
+ @NonNull
+ public static String deleteStatusToString(int status, @Nullable String msg) {
final String str = deleteStatusToString(status);
if (msg != null) {
return str + ": " + msg;
@@ -6592,6 +6696,7 @@
}
/** {@hide} */
+ @NonNull
@UnsupportedAppUsage
public static String deleteStatusToString(int status) {
switch (status) {
@@ -6621,6 +6726,7 @@
}
/** {@hide} */
+ @NonNull
public static String permissionFlagToString(int flag) {
switch (flag) {
case FLAG_PERMISSION_GRANTED_BY_DEFAULT: return "GRANTED_BY_DEFAULT";
@@ -6668,8 +6774,8 @@
* @hide
*/
@TestApi
- public abstract @InstallReason int getInstallReason(String packageName,
- @NonNull UserHandle user);
+ @InstallReason
+ public abstract int getInstallReason(@NonNull String packageName, @NonNull UserHandle user);
/**
* Checks whether the calling package is allowed to request package installs through package
@@ -6695,6 +6801,7 @@
* @see {@link android.content.Intent#ACTION_INSTANT_APP_RESOLVER_SETTINGS}
* @hide
*/
+ @Nullable
@SystemApi
public abstract ComponentName getInstantAppResolverSettingsComponent();
@@ -6705,6 +6812,7 @@
* @see {@link android.content.Intent#ACTION_INSTALL_INSTANT_APP_PACKAGE}
* @hide
*/
+ @Nullable
@SystemApi
public abstract ComponentName getInstantAppInstallerComponent();
@@ -6714,7 +6822,9 @@
* @see {@link android.provider.Settings.Secure#ANDROID_ID}
* @hide
*/
- public abstract String getInstantAppAndroidId(String packageName, @NonNull UserHandle user);
+ @Nullable
+ public abstract String getInstantAppAndroidId(@NonNull String packageName,
+ @NonNull UserHandle user);
/**
* Callback use to notify the callers of module registration that the operation
@@ -6757,7 +6867,7 @@
* @hide
*/
@SystemApi
- public abstract void registerDexModule(String dexModulePath,
+ public abstract void registerDexModule(@NonNull String dexModulePath,
@Nullable DexModuleRegisterCallback callback);
/**
@@ -6837,8 +6947,8 @@
* @param type representation of the {@code certificate}
* @return true if this package was or is signed by exactly the certificate {@code certificate}
*/
- public boolean hasSigningCertificate(
- String packageName, byte[] certificate, @CertificateInputType int type) {
+ public boolean hasSigningCertificate(@NonNull String packageName, @NonNull byte[] certificate,
+ @CertificateInputType int type) {
throw new UnsupportedOperationException(
"hasSigningCertificate not implemented in subclass");
}
@@ -6862,7 +6972,7 @@
* @return true if this package was or is signed by exactly the certificate {@code certificate}
*/
public boolean hasSigningCertificate(
- int uid, byte[] certificate, @CertificateInputType int type) {
+ int uid, @NonNull byte[] certificate, @CertificateInputType int type) {
throw new UnsupportedOperationException(
"hasSigningCertificate not implemented in subclass");
}
@@ -6872,6 +6982,7 @@
*
* @hide
*/
+ @Nullable
public String getSystemTextClassifierPackageName() {
throw new UnsupportedOperationException(
"getSystemTextClassifierPackageName not implemented in subclass");
@@ -6882,6 +6993,7 @@
*
* @hide
*/
+ @Nullable
@TestApi
public String getWellbeingPackageName() {
throw new UnsupportedOperationException(
@@ -6893,6 +7005,7 @@
*
* @hide
*/
+ @Nullable
public String getAppPredictionServicePackageName() {
throw new UnsupportedOperationException(
"getAppPredictionServicePackageName not implemented in subclass");
@@ -6903,6 +7016,7 @@
*
* @hide
*/
+ @Nullable
public String getSystemCaptionsServicePackageName() {
throw new UnsupportedOperationException(
"getSystemCaptionsServicePackageName not implemented in subclass");
@@ -6928,7 +7042,7 @@
*
* @hide
*/
- public boolean isPackageStateProtected(String packageName, int userId) {
+ public boolean isPackageStateProtected(@NonNull String packageName, @UserIdInt int userId) {
throw new UnsupportedOperationException(
"isPackageStateProtected not implemented in subclass");
}