diff options
| -rw-r--r-- | api/system-current.txt | 25 | ||||
| -rw-r--r-- | core/java/android/content/pm/IntentFilterVerificationInfo.java | 16 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 11 | ||||
| -rw-r--r-- | core/res/AndroidManifest.xml | 2 |
4 files changed, 52 insertions, 2 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index a6d8e4e010d9..f0e9ff5e8d09 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -10240,6 +10240,15 @@ package android.content.pm { field public java.lang.String targetPackage; } + public final class IntentFilterVerificationInfo implements android.os.Parcelable { + method public int describeContents(); + method public java.util.Set<java.lang.String> getDomains(); + method public java.lang.String getPackageName(); + method public int getStatus(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<android.content.pm.IntentFilterVerificationInfo> CREATOR; + } + public class LabeledIntent extends android.content.Intent { ctor public LabeledIntent(android.content.Intent, java.lang.String, int, int); ctor public LabeledIntent(android.content.Intent, java.lang.String, java.lang.CharSequence, int); @@ -10505,6 +10514,7 @@ package android.content.pm { 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.IntentFilter> getAllIntentFilters(java.lang.String); 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(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException; @@ -10517,12 +10527,15 @@ package android.content.pm { method public abstract android.graphics.drawable.Drawable getApplicationLogo(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract int getComponentEnabledSetting(android.content.ComponentName); method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); + method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); method public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException; + method public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(java.lang.String); + method public abstract int getIntentVerificationStatusAsUser(java.lang.String, int); method public abstract android.content.Intent getLaunchIntentForPackage(java.lang.String); method public abstract android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String); method public abstract java.lang.String getNameForUid(int); @@ -10578,7 +10591,9 @@ package android.content.pm { method public abstract void setApplicationCategoryHint(java.lang.String, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); + method public abstract boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); + method public abstract boolean updateIntentVerificationStatusAsUser(java.lang.String, int, int); method public abstract void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle); method public abstract void verifyIntentFilter(int, int, java.util.List<java.lang.String>); method public abstract void verifyPendingInstall(int, int); @@ -10739,6 +10754,11 @@ package android.content.pm { field public static final int INSTALL_REASON_POLICY = 1; // 0x1 field public static final int INSTALL_REASON_UNKNOWN = 0; // 0x0 field public static final int INSTALL_SUCCEEDED = 1; // 0x1 + field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS = 2; // 0x2 + field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK = 4; // 0x4 + field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK = 1; // 0x1 + field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER = 3; // 0x3 + field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED = 0; // 0x0 field public static final int INTENT_FILTER_VERIFICATION_FAILURE = -1; // 0xffffffff field public static final int INTENT_FILTER_VERIFICATION_SUCCESS = 1; // 0x1 field public static final int MASK_PERMISSION_FLAGS = 255; // 0xff @@ -42467,12 +42487,15 @@ package android.test.mock { method public android.graphics.drawable.Drawable getApplicationLogo(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException; method public int getComponentEnabledSetting(android.content.ComponentName); method public android.graphics.drawable.Drawable getDefaultActivityIcon(); + method public java.lang.String getDefaultBrowserPackageNameAsUser(int); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int); method public java.lang.String getInstallerPackageName(java.lang.String); method public android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException; + method public java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(java.lang.String); + method public int getIntentVerificationStatusAsUser(java.lang.String, int); method public android.content.Intent getLaunchIntentForPackage(java.lang.String); method public android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String); method public java.lang.String getNameForUid(int); @@ -42526,7 +42549,9 @@ package android.test.mock { method public void setApplicationCategoryHint(java.lang.String, int); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); + method public boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int); method public void setInstallerPackageName(java.lang.String, java.lang.String); + method public boolean updateIntentVerificationStatusAsUser(java.lang.String, int, int); method public void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle); method public void verifyIntentFilter(int, int, java.util.List<java.lang.String>); method public void verifyPendingInstall(int, int); diff --git a/core/java/android/content/pm/IntentFilterVerificationInfo.java b/core/java/android/content/pm/IntentFilterVerificationInfo.java index f12abf36c172..068973b84d38 100644 --- a/core/java/android/content/pm/IntentFilterVerificationInfo.java +++ b/core/java/android/content/pm/IntentFilterVerificationInfo.java @@ -22,6 +22,7 @@ import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATIO import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER; +import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -36,6 +37,7 @@ import org.xmlpull.v1.XmlSerializer; import java.io.IOException; import java.util.ArrayList; +import java.util.Set; /** * The {@link com.android.server.pm.PackageManagerService} maintains some @@ -43,6 +45,7 @@ import java.util.ArrayList; * * @hide */ +@SystemApi public final class IntentFilterVerificationInfo implements Parcelable { private static final String TAG = IntentFilterVerificationInfo.class.getName(); @@ -55,22 +58,26 @@ public final class IntentFilterVerificationInfo implements Parcelable { private String mPackageName; private int mMainStatus; + /** @hide */ public IntentFilterVerificationInfo() { mPackageName = null; mMainStatus = INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED; } + /** @hide */ public IntentFilterVerificationInfo(String packageName, ArraySet<String> domains) { mPackageName = packageName; mDomains = domains; mMainStatus = INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED; } + /** @hide */ public IntentFilterVerificationInfo(XmlPullParser parser) throws IOException, XmlPullParserException { readFromXml(parser); } + /** @hide */ public IntentFilterVerificationInfo(Parcel source) { readFromParcel(source); } @@ -83,6 +90,7 @@ public final class IntentFilterVerificationInfo implements Parcelable { return mMainStatus; } + /** @hide */ public void setStatus(int s) { if (s >= INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED && s <= INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER) { @@ -92,14 +100,16 @@ public final class IntentFilterVerificationInfo implements Parcelable { } } - public ArraySet<String> getDomains() { + public Set<String> getDomains() { return mDomains; } + /** @hide */ public void setDomains(ArraySet<String> list) { mDomains = list; } + /** @hide */ public String getDomainsString() { StringBuilder sb = new StringBuilder(); for (String str : mDomains) { @@ -135,6 +145,7 @@ public final class IntentFilterVerificationInfo implements Parcelable { } } + /** @hide */ public void readFromXml(XmlPullParser parser) throws XmlPullParserException, IOException { mPackageName = getStringFromXml(parser, ATTR_PACKAGE_NAME, null); @@ -170,6 +181,7 @@ public final class IntentFilterVerificationInfo implements Parcelable { } } + /** @hide */ public void writeToXml(XmlSerializer serializer) throws IOException { serializer.attribute(null, ATTR_PACKAGE_NAME, mPackageName); serializer.attribute(null, ATTR_STATUS, String.valueOf(mMainStatus)); @@ -180,10 +192,12 @@ public final class IntentFilterVerificationInfo implements Parcelable { } } + /** @hide */ public String getStatusString() { return getStatusStringFromValue(((long)mMainStatus) << 32); } + /** @hide */ public static String getStatusStringFromValue(long val) { StringBuilder sb = new StringBuilder(); switch ((int)(val >> 32)) { diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 7bdc56db5300..98edbf817519 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -1444,6 +1444,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED = 0; /** @@ -1454,6 +1455,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK = 1; /** @@ -1465,6 +1467,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS = 2; /** @@ -1476,6 +1479,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER = 3; /** @@ -1489,6 +1493,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK = 4; /** @@ -5070,6 +5075,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public abstract int getIntentVerificationStatusAsUser(String packageName, @UserIdInt int userId); /** @@ -5092,6 +5098,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public abstract boolean updateIntentVerificationStatusAsUser(String packageName, int status, @UserIdInt int userId); @@ -5107,6 +5114,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public abstract List<IntentFilterVerificationInfo> getIntentFilterVerifications( String packageName); @@ -5121,6 +5129,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public abstract List<IntentFilter> getAllIntentFilters(String packageName); /** @@ -5134,6 +5143,7 @@ public abstract class PackageManager { * @hide */ @TestApi + @SystemApi public abstract String getDefaultBrowserPackageNameAsUser(@UserIdInt int userId); /** @@ -5148,6 +5158,7 @@ public abstract class PackageManager { * * @hide */ + @SystemApi public abstract boolean setDefaultBrowserPackageNameAsUser(String packageName, @UserIdInt int userId); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 2692bf2bce42..6d48862ea132 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1963,7 +1963,7 @@ {@link android.content.pm.PackageManager#addPackageToPreferred} for details. --> <permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" - android:protectionLevel="signature" /> + android:protectionLevel="signature|verifier" /> <!-- Allows an application to receive the {@link android.content.Intent#ACTION_BOOT_COMPLETED} that is |