Скажем, я хочу попросить приложение "Телефон" набрать номер или приложение "Карты" для отображения определенного места или приложение "Навигатор" для перехода к определенному месту и т.д.
Очевидно, мне нужно передать или отправить намерение. Но какие действия/категории/URI данных я использую? На что будут распознавать и реагировать каждое приложение? Это похоже на базовую информацию, которая должна быть документирована где-то очевидной. Но пока я не смог его найти.
Я нашел класс PackageManager, который выглядит так, как будто он может сказать мне все, что я хочу знать. Если я потрачу время, чтобы написать приложение браузера пакетов, чтобы запросить его. Который я вполне готов сделать, но что-то настолько безумно полезное, должно быть, уже кто-то написал. Почему я не могу найти его? Я ищу не в том месте?
Спасибо
Для операций ОС большая часть поискового запроса Intents
документируется на классе Intent
(см. таблицу Constants, для константы с префиксом ACTION_
и, в частности, те, которые описаны как "Действие действий" ). Javadocs объясняет, что требуется для каждого из этих действий Intent
.
Для некоторых приложений Google Intents
, которые вы видите, задокументированы в приложении в руководстве разработчика.
Сторонние приложения должны документировать все, что они считают своим публичным API, на своих сайтах.
Так, например, это означает, что "попросите приложение" Телефон "набрать номер" (ACTION_DIAL
) и "Приложение Maps для отображения определенного места" (geo:
Uri
).
Он не охватывает "приложение Navigator для перехода к определенному месту", поскольку Google написал это приложение и решил не документировать или поддерживать какой-либо публичный API для него. Это решение Google сделать.