Мне бы хотелось, чтобы мое приложение запускалось, когда пользователь нажимает на ссылку, например, http://myapp.com
, которая встроена в SMS-сообщение.
Я следовал этому [решению], но он не работает для меня. Эмулятор постоянно открывает браузер.
Вот фильтр намерений:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.catagory.DEFAULT"/>
<category android:name="android.intent.catagory.BROWSABLE"/>
<data android:host="myapp.com" android:scheme="http" />
</intent-filter>
Я также пытался увеличить приоритет фильтра намерений, чтобы перехватить намерение перед браузером, используя тег android:priority = 100
, но это ничего не изменило. Таким образом, либо этот приоритет недостаточно высок, либо фильтр намерений не совпадает с самого начала.
Вот намерение, которое система вещает сразу после нажатия на ссылку. Это дало:
04-27 13:03:22.905: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.VIEW dat=http://myapp.com cmp=com.android.browser/.BrowserActivity}
Я предполагаю, что Android выбирает браузер по умолчанию при каждой отправке этого намерения. Интересно, есть ли что-нибудь связанное с атрибутом cmp. Можем ли мы изменить это? Иначе, как мы можем перехватить намерение перед браузером?
Любые советы приветствуются. Заранее спасибо:)