Google Assistant использует три разных формата намерений, которые может поддерживать ваше навигационное приложение. Вы можете добиться совместимости и интегрировать свое приложение и Google Assistant, объявив фильтры намерений, подробно описанные на этой странице, в манифесте вашего приложения. Дополнительные сведения о намерениях см. в Intent
.
Класс Intent
навигационного приложения Assistant поддерживает следующие намерения:
- Цель навигации
- Цель поиска
- Намерение специального действия
Рисунок 1. Поток данных намерения.
Параметры в данных намерения
Данные намерения соответствуют формату URI, содержащему параметры, основанные на передаваемом вами намерении. Некоторые параметры всегда предоставляются в данных. Это означает, что вы можете ожидать, что они всегда будут иметь явное значение. Однако необязательные параметры не всегда имеют значения, установленные в данных. Дополнительную информацию см. в разделе Тест данных .
Офлайн-намерения
Для всех намерений, перечисленных на этой странице, доступны автономные варианты. Вы можете отличить их, добавив к их схеме .offline
. Например, цель навигации использует схему geo.offline
. Эти фильтры намерений в манифесте означают способность приложения поддерживать эти действия в автономном режиме.
Цель навигации
Используйте намерение навигации для выполнения запроса пользователя о переходе к определенному пункту назначения. Этим пунктом назначения может быть либо одно местоположение (адрес), либо несколько мест (например, кафе и заправочные станции). Данные намерения соответствуют формату URI, указанному для каждого намерения.
Формат намерения
Класс Intent
использует следующий формат для намерения навигационного приложения:
Категория: android.intent.category.DEFAULT
Действие:
- Android Auto и Android Automotive OS:
androidx.car.app.action.NAVIGATE
- Другие форм-факторы:
android.intent.action.NAVIGATE
Схема: geo
Примеры:
-
geo:0,0?q=Googleplex
-
geo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stop
-
geo:0,0?q=coffee+shop&mode=w&intent=navigation
-
geo:1.1,2.2?q=Starbucks+on+Main+Street&mode=w&intent=navigation
Рекомендуемое поведение приложения: начинается переход к указанному местоположению или пользователю предлагается выбрать один из нескольких вариантов.
Фильтры манифеста намерений
Объявите следующий формат намерений в файле манифеста вашего приложения, чтобы Google Assistant знал, что ваше навигационное приложение может получать намерения навигации.
Все форм-факторы, кроме Android Auto и Android Automotive OS:
<intent-filter>
<action android:name="android.intent.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
Android Auto и Android Automotive OS:
<intent-filter>
<action android:name="androidx.car.app.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
Поставляемые параметры
Ожидается, что следующие параметры будут доступны в предоставленных данных о намерениях навигационного приложения.
Запрос местоположения или географические координаты
Каждый запрос намерения навигации содержит один или оба этих параметра, в зависимости от типа запрашиваемых данных:
Запрос местоположения
Относится к местоположению, к которому пытается перейти пользователь. Используйте эти данные для определения пункта назначения пользователя.
Ключ параметра:
q
Значение: пункт назначения, запрошенный пользователем.Пример:
geo:0,0?q=Golden+Gate+Bridge
Интерпретация: Пользователь хочет перейти к мосту Золотые Ворота .Географические координаты (широта и долгота)
Относится к конкретным координатам, используемым пользователем для навигации.
Ключ параметра:
geo:lat,long
Значение: запрошенные пользователем координаты.Пример:
geo:1.1,2.2?mode=w&intent=navigation
Интерпретация: Пользователь хочет перейти к координатам (1.1, 2.2).
Дополнительные параметры
В этом разделе описаны необязательные параметры, предоставляемые в данных намерения навигационного приложения.
Намерение
Определяет намерение пользователя. Если этот параметр не установлен, намерением пользователя по умолчанию считается navigation
.
Ключ параметра: intent
Возможные значения:
-
navigation
[значение по умолчанию] — заменяет пункт назначения и запускает навигацию. Используйте это для таких запросов, как переход к x . -
add_a_stop
— добавляет остановку в качестве следующего пункта назначения вместе с предыдущими пунктами назначения. Используйте это для таких запросов, как добавить остановку в x . -
directions
— показывает направления маршрута без запуска навигации. Используйте это для таких запросов, как направление к x .
Пример: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop
Интерпретация: Пользователь хочет добавить остановку на площади Бельвью, Бельвью, с текущими координатами [47.6, -122,2].
Избегать
Определяет вещи, которых следует избегать при навигации.
Ключ параметра: avoid
Возможные значения:
-
f
- паромы -
h
- автомагистрали -
t
- дорожные сборы
Пример: geo:0,0?q=googleplex&avoid=tf
Интерпретация: пользователь хочет перейти в Googleplex, минуя платные дороги и паромы.
Режим путешествия
Режим путешествия представляет собой способ передвижения, указанный пользователем в запросе.
Ключ параметра: mode
Возможные значения:
-
b
- велосипед -
d
- диск -
x
- такси -
l
- двухколесный транспорт -
r
- транзит -
w
- прогулка
Пример: geo:0,0?q=Googleplex&mode=r
Интерпретация: пользователь хочет добраться до Googleplex на общественном транспорте.
Вход
Используется для регистрации источника входа.
Возможные значения: помощник
Пример: geo:47.61594547836694,-122.20373173098756?entry=assistant
Цель поиска
Используйте намерение поиска для поиска запроса и отображения нескольких результатов по маршруту во время вождения.
Формат намерения
Класс Intent
использует следующий формат для целей поиска:
Категория: android.intent.category.DEFAULT
Действие: android.intent.action.VIEW
Схема: geo
Пример: geo:0,0?q=restaurants+nearby
Рекомендуемое поведение приложения: откройте список местоположений, соответствующих запросу пользователя.
Фильтры манифеста намерений
Объявите следующий формат намерений в файле манифеста вашего приложения, чтобы Google Assistant знал, что ваше навигационное приложение может получать намерения поиска:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
Поставляемые параметры
Ожидается, что в предоставленных данных о намерениях поиска будут доступны следующие параметры.
Запрос местоположения
Запрос местоположения – это местоположение, которое пользователь ищет во время вождения. Этот запрос может быть неточным или соответствовать активному маршруту навигации.
Ключ параметра: q
Значение: поисковый запрос пользователя, который может представлять собой тип местоположения, например кафе или колледж , но также может иметь квантификаторы, такие как -рядом со мной или -с лучшим рейтингом .
Пример: geo:0,0?q=restaurants+nearby
Интерпретация: Пользователь хочет найти близлежащие рестораны.
Намерение специального действия
Используйте собственное намерение для индивидуальных действий, таких как сообщение об авариях и завершение навигации. Тип основного действия определяется параметром запроса act
. Вы можете установить дополнительные параметры в зависимости от типа действия.
Формат намерения
Класс Intent
использует следующий формат для намерения специального действия:
Категория: android.intent.category.DEFAULT
Действие: android.intent.action.VIEW
Схема: geo.action
Пример: geo.action:?act=report&accident_type=major
Фильтры манифеста намерений
Объявите следующий формат намерений в файле манифеста вашего приложения, чтобы сообщить Google Assistant, что ваше навигационное приложение может получать намерения специальных действий.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo.action" />
</intent-filter>
Поставляемые параметры
Ожидается, что в предоставленных данных о намерении специального действия будут доступны следующие параметры:
Тип действия
Он определяет тип настраиваемого действия, которое пользователь хочет выполнить.
Ключ параметра: act
Примеры:
geo.action:?act=report_crash&accident_type=major
Интерпретация: Пользователь хочет сообщить о крупной аварии.geo.action:?act=mute
Интерпретация: Пользователь хочет отключить голосовые инструкции.geo.action:?act=exit_navigation
Интерпретация: Пользователь хочет выйти из текущей навигации.
Рекомендуемое поведение приложения: выполните запрошенное действие в навигационном приложении или отобразите сообщение о неподдерживаемом действии.
На следующем рисунке показан пример пар ключ-значение в ответном запросе:
Рисунок 2. Поток данных о намерении специального действия.
Пара ключ-значение:
"act": "report_crash"
"road_direction": other_side"
Каждое специальное действие всегда имеет ключевой параметр act
. В вышеупомянутом примере кода некоторые действия могут иметь дополнительные пары ключ-значение. Например, act=report_crash
поддерживает следующие дополнительные ключи: accident_type
и road_direction
.
Ключ accident_type
может поддерживать два значения: minor
и major
.
Возможные значения
В таблице перечислены возможные значения, которые Google Assistant может передать в качестве действия, которое пользователь пытается выполнить в навигационном приложении.
Ценить | Описание | Дополнительные клавиши параметров | Дополнительные значения параметров |
---|---|---|---|
allow_ferries | Измените предпочтения маршрута, чтобы разрешить переправу. | ||
allow_highways | Измените предпочтения маршрута, чтобы разрешить движение по автомагистралям. | ||
allow_tolls | Измените предпочтения маршрута, чтобы разрешить взимание платы за проезд. | ||
apply_electric_vehicle_connector_filter | Показывайте только места зарядки электромобилей, соответствующие разъему автомобиля. | ||
apply_electric_vehicle_fast_charging_filter | Показывайте только места зарядки электромобилей, которые являются устройствами быстрой зарядки. | ||
apply_electric_vehicle_payment_filter | Показывайте только места зарядки электромобилей, которые требуют оплаты. | ||
avoid_ferries | Измените предпочтения маршрута, чтобы избежать паромов. | ||
avoid_highways | Измените предпочтения маршрута, чтобы избежать шоссе. | ||
avoid_tolls | Измените предпочтения маршрута, чтобы избежать платы за проезд. | ||
clear_search_results | Очистить результаты поиска на карте. | ||
distance_to_destination | Показать расстояние до пункта назначения. | ||
distance_to_next_turn | Показать расстояние до следующего поворота. | ||
eta | Покажите расчетное время прибытия до пункта назначения. | ||
exit_navigation | Выйти или отменить навигацию. | ||
follow_mode | Измените вид карты на режим следования. | ||
go_back | Вернитесь к предыдущему действию на карте. | ||
hide_satellite | Измените настройки карты, чтобы скрыть информацию о спутнике. | ||
hide_traffic | Измените настройки карты, чтобы скрыть информацию о пробках. | ||
mute | Отключить голосовое сопровождение. | ||
query_current_road | Покажите, по какой дороге в данный момент находится пользователь. | ||
query_destination | Покажите, какое предназначение. | ||
query_next_turn | Покажите, какой следующий поворот. | ||
remove_electric_vehicle_connector_filter | Удалите фильтрацию мест зарядки электромобилей, соответствующих разъему автомобиля. | ||
remove_electric_vehicle_fast_charging_filter | Удалите фильтрацию мест зарядки электромобилей, которые являются станциями быстрой зарядки. | ||
remove_electric_vehicle_payment_filter | Удалите фильтрацию мест зарядки электромобилей, требующих оплаты. | ||
report_crash | Сообщать о сбоях. | accident_type | minor |
major | |||
road_direction | this_side | ||
other_side | |||
report_hazard | Сообщайте об опасностях. | hazard_type | animal |
broken_traffic_light | |||
construction | |||
flooding | |||
fog | |||
hail | |||
ice | |||
missing_sign | |||
object_on_road | |||
pothole | |||
roadkill | |||
snow | |||
vehicle | |||
weather | |||
road_direction | this_side | ||
other_side | |||
location_on_road | on_road | ||
on_shoulder | |||
report_police | Сообщите о деятельности полиции. | road_direction | this_side |
other_side | |||
report_road_closure | Сообщите о перекрытии дорог. | road_closure_type | partial |
full | |||
report_traffic | Сообщайте о трафике. | traffic_type | moderate |
heavy | |||
standstill | |||
road_direction | this_side | ||
other_side | resume_navigation | Возобновить навигацию. | |
route_overview | Показать обзор маршрута. | ||
show_alternates | Показать альтернативные маршруты. | ||
show_directions_list | Покажите пошаговые инструкции. | ||
show_satellite | Показать информацию о спутнике на карте. | ||
show_traffic | Покажите трафик на карте. | ||
time_to_destination | Показать ETA до места назначения. | ||
time_to_next_turn | Покажите расчетное время прибытия до следующего поворота. | ||
unmute | Включить голосовые подсказки. |