намерение: URI не работает в браузере Android

Итак, я нажимаю на эту ссылку:

<a href="intent://www.google.com#Intent;scheme=http;action=android.intent.action.VIEW;end">Google</a>

(Я знаю, что это глупый пример, так как это может быть просто http://www.google.com, но это иллюстрирует проблему)

Я определил этот URI из

Log.v(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://www.google.com")).toUri(
                    Intent.URI_INTENT_SCHEME));

Я вижу следующее в logcat:

08-02 08:32:34.708 I/ActivityManager(   71): Starting activity: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=http://www.google.com cmp=com.android.browser/.BrowserActivity }
08-02 08:32:34.748 E/Tab     ( 4188): onReceivedError -10 intent://www.google.com#Intent;scheme=http;action=android.intent.action.VIEW;end The protocol is not supported

Вместо перенаправления на www.google.com я получаю страницу «Веб-страница недоступна».

Если я запускаю то же самое намерение, используя двоичный файл am, он преуспевает.

adb -e shell am start -d http://www.google.com -a android.intent.action.VIEW

Я вижу это в логарифме

08-02 08:47:42.488 I/ActivityManager(   71): Starting activity: Intent { act=android.intent.action.VIEW dat=http://www.google.com flg=0x10000000 cmp=com.android.browser/.BrowserActivity }

Конечная цель состоит в том, чтобы иметь URL-адрес, который запускает определенное действие в приложении (и у кого-то нет возможности попасть на эту страницу, не установив приложение). Я знаю, что также могу определить пользовательскую схему, но, поскольку это глобальное пространство имен, я бы не стал этого делать. Я также знаю, что могу использовать http:// для этой цели, но я не хочу, чтобы пользователю предлагалось открыть URL-адрес в браузере или в моем приложении.

Любые идеи?


person David Richardson    schedule 07.11.2011    source источник


Ответы (1)


Я столкнулся с той же проблемой

Добавление следующего кода в мою активность в AndroidManifest.xml решило мою проблему:

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
person jvwilge    schedule 18.11.2011