OSDN Git Service

Intent filters need CATEGORY_BROWSABLE to be app-linking eligible
authorChristopher Tate <ctate@google.com>
Wed, 15 Jul 2015 23:56:58 +0000 (16:56 -0700)
committerChristopher Tate <ctate@google.com>
Wed, 15 Jul 2015 23:56:58 +0000 (16:56 -0700)
Bug 22504009

Change-Id: I565b2ba4d1e5deeee8ede3363819deec206dbf58

services/core/java/com/android/server/pm/PackageManagerService.java

index 221e925..eb84e18 100644 (file)
@@ -801,12 +801,9 @@ public class PackageManagerService extends IPackageManager.Stub {
     }
 
     private static boolean hasValidDomains(ActivityIntentInfo filter) {
-        boolean hasHTTPorHTTPS = filter.hasDataScheme(IntentFilter.SCHEME_HTTP) ||
-                filter.hasDataScheme(IntentFilter.SCHEME_HTTPS);
-        if (!hasHTTPorHTTPS) {
-            return false;
-        }
-        return true;
+        return filter.hasCategory(Intent.CATEGORY_BROWSABLE)
+                && (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) ||
+                        filter.hasDataScheme(IntentFilter.SCHEME_HTTPS));
     }
 
     private IntentFilterVerifier mIntentFilterVerifier;
@@ -15075,8 +15072,9 @@ public class PackageManagerService extends IPackageManager.Stub {
         }
         if (filters != null && filters.size() > 0) {
             for (IntentFilter filter : filters) {
-                if (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) ||
-                        filter.hasDataScheme(IntentFilter.SCHEME_HTTPS)) {
+                if (filter.hasCategory(Intent.CATEGORY_BROWSABLE)
+                        && (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) ||
+                                filter.hasDataScheme(IntentFilter.SCHEME_HTTPS))) {
                     result.addAll(filter.getHostsList());
                 }
             }