Сопоставьте параметры HTTP в URL-адресе с фильтрами намерений Android

Я пытаюсь собрать фильтр намерений для запуска моего приложения при доступе к определенному URL-адресу HTML в браузере. У меня нет проблем с этим, когда это стандартный URL-адрес, например, www.stonyx.com.

Однако мне нужно сопоставить URL-адрес с параметрами HTTP, такими как www.stonyx.com/?pagename, и это часть после ? что у меня возникли проблемы с сопоставлением.

Я пробовал использовать android:path, android:pathPrefix и android:pathPattern, и ни один из них, похоже, не сделал это для меня... не уверен, что это потому, что я делаю что-то не так, или это просто потому, что это php путь со знаком вопроса. Любая помощь высоко ценится.

P.S. Вот как сейчас выглядит мой фильтр намерений

<intent-filter>
  <action android:name="android.intent.action.VIEW"></action>
  <category android:name="android.intent.category.DEFAULT"></category>
  <category android:name="android.intent.category.BROWSABLE"></category>
  <data android:host="www.megaupload.com" android:scheme="http"></data>
</intent-filter>

person Harry Muscle    schedule 01.09.2011    source источник


Ответы (1)


Вы не можете. :(

согласно http://developer.android.com/guide/components/intents-filters.html :

Каждый элемент может указывать URI и тип данных (медиа-тип MIME). Для каждой части URI существуют отдельные атрибуты — схема, хост, порт и путь:

схема://хост:порт/путь

нет параметров или строк запроса. (таким образом, часть после знака ? просто ни с чем не сопоставляется)

person vmatyi    schedule 01.01.2013
comment
Просто хочу, чтобы вы знали, что если вы хотите получить параметры, вы всегда можете проанализировать их из элемента данных, что даст вам весь URI. Используйте getIntent().getData() для получения URI. - person PaulP; 29.05.2015