Для открытия внешних установленных приложений надо использовать неявный вызов Intent, с установкой нужный данных для фильтров: action, data/
Для установки данных для Intent используется метод setData (Uri data). Uri - объект который содержит данные, передаваемые строкой и разбивает эти данные на части.
Чтобы открыть на карте геоточку надо передать строку типа "geo:55.754283,37.62002".
Чтобы открыть сайт нужна строка типа "http://developer.android.com".
Чтобы открыть стандартное окно набора номера нужна строка типа "tel:12345".
Пример кода для открытия геоточки на карте:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("geo:55.754283,37.62002"));
startActivity(intent);
Тип передаваемых данных можно определить по Scheme. Его можно получить методом uri.getScheme().
Он соответствует началу строки до символа ":". Например в строке "geo:55.754283,37.62002" Scheme = "geo".
Этот же Scheme можно настроить в Intent Filter и отсеивать Intent, только с нужным нам типом данных в Uri, например только http.
Например для отображения только web ссылок фильтр:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
|