Gemini использует три различных формата интентов, которые может поддерживать ваше навигационное приложение. Вы можете обеспечить совместимость и интеграцию вашего приложения с Gemini, указав фильтры интентов, подробно описанные на этой странице, в манифесте вашего приложения. Чтобы узнать больше об интентах, см. Intent .
Класс Intent навигационного приложения Gemini поддерживает следующие интенты:
- Намерение навигации
- Цель поиска
- Настраиваемое намерение действия
Рисунок 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
Рекомендуемое поведение приложения: Начинается навигация к указанному местоположению или пользователю предлагается выбрать один из нескольких вариантов.
Фильтры явного намерения
Укажите следующий формат намерений в файле манифеста вашего приложения, чтобы Gemini знал, что ваше навигационное приложение может получать навигационные намерения.
Все форм-факторы, кроме 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— Отображает маршрут без начала навигации. Используйте это для запросов, например, directions to 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
Рекомендуемое поведение приложения: Открыть список местоположений, соответствующих запросу пользователя.
Фильтры явного намерения
Укажите следующий формат намерений в файле манифеста вашего приложения, чтобы Gemini знал, что ваше навигационное приложение может получать поисковые намерения:
<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
Интерпретация: Пользователь хочет найти ближайшие рестораны.
Настраиваемое намерение действия
Для выполнения пользовательских действий, таких как сообщение об авариях и завершение навигации, используйте пользовательский Intent. Основной тип действия определяется параметром запроса act . В зависимости от типа действия можно задать дополнительные параметры.
Формат намерения
Класс Intent использует следующий формат для пользовательских действий Intent:
Категория: android.intent.category.DEFAULT
Действие: android.intent.action.VIEW
Схема: geo.action
Пример: geo.action:?act=report&accident_type=major
Фильтры явного намерения
Укажите следующий формат намерений в файле манифеста вашего приложения, чтобы Gemini знал, что ваше навигационное приложение может получать пользовательские намерения действий.
<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 .
Возможные значения
В таблице перечислены возможные значения, которые Gemini может передавать в качестве действия, которое пользователь пытается выполнить в навигационном приложении.
| Ценить | Описание | Необязательные ключи параметров | Необязательные значения параметров |
|---|---|---|---|
allow_ferries | Измените предпочтительный маршрут, чтобы разрешить использование паромов. | ||
allow_highways | Измените предпочтительный маршрут, чтобы разрешить движение по автомагистралям. | ||
allow_tolls | Измените предпочтительный маршрут, чтобы разрешить въезд платных дорог. | ||
avoid_ferries | Измените предпочтительный маршрут, чтобы избежать переправ через паромы. | ||
avoid_highways | Измените предпочтительный маршрут, чтобы избежать автомагистралей. | ||
avoid_tolls | Измените предпочтительный маршрут, чтобы избежать платных дорог. | ||
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 | Укажите, какой следующий ход. | ||
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 | |||
route_overview | Показать общий маршрут. | ||
show_alternates | Показать альтернативные маршруты. | ||
show_directions_list | Показать пошаговые инструкции. | ||
show_satellite | Отобразить спутниковую информацию на карте. | ||
show_traffic | Отобразить дорожную ситуацию на карте. | ||
time_to_destination | Показать расчетное время прибытия в пункт назначения. | ||
time_to_next_turn | Укажите предполагаемое время прибытия к следующему повороту. | ||
unmute | Включите голосовые подсказки. |
Получить статус навигации
Чтобы Gemini мог предоставлять пользователю точную информацию в режиме реального времени при запросе статуса поездки, ваше приложение должно передавать метаданные навигации с помощью службы NavigationManager для автомобилей. Рекомендации по реализации см. в разделе «Передача метаданных навигации» .