Фильтры намерений для Android-хоста по шаблону

Можно ли использовать подстановочные знаки в атрибуте android: host?

Что-то вроде:

        android:host="*.site.com"
        android:pathPattern=".*"
        android:pathPrefix="/m/"
        android:scheme="http" />

Или даже

        android:host="*.site.*"
        android:pathPattern=".*"
        android:pathPrefix="/m/"
        android:scheme="http" />

Ответ 1

Да. После прочтения кода Android IntentFilter.AuthorityEntry.match(), я вижу, что есть способ поставить подстановочный знак на хост, но только чтобы соответствовать началу хоста. Правила таковы:

  • Поместите * в качестве первого символа хоста.
  • Запишите оставшуюся часть хоста до конца.

Это будет работать:

    android:host="*site.com"
    android:pathPattern=".*"
    android:scheme="http" />

Он поймает ссылки:

  • www.site.com
  • site.com
  • mail.site.com

С другой стороны, ниже не будет работать:

    android:host="*.site.*"
    android:pathPattern=".*"
    android:scheme="http" />