Cómo implementar intents de apps de navegación

Asistente de Google usa tres formatos diferentes de intents que tu app de navegación puede admitir. Para lograr la interoperabilidad y la integración de tu app y Asistente de Google, declara los filtros de intents que se detallan en esta página en el manifiesto de tu app. Para obtener más información sobre los intents, consulta Intent.

La clase Intent de la app de navegación de Asistente admite los siguientes intents:

  • Intent de navegación
  • Intención de búsqueda
  • Intent de acción personalizada

Flujo de datos de intents

Figura 1: Flujo de datos de intents.

Parámetros en los datos de intent

Los datos de intent siguen un formato de URI que contiene parámetros basados en el intent que pasas. Algunos parámetros siempre se proporcionan en los datos. Esto significa que puedes esperar que siempre tengan un valor explícito. Sin embargo, los parámetros opcionales no siempre tienen un valor establecido en los datos. Para obtener más información, consulta Prueba de datos.

Intents sin conexión

Todos los intents que se enumeran en esta página tienen sus variantes sin conexión disponibles. Para distinguirlos, agrega .offline a su esquema. Por ejemplo, el intent de navegación usa el esquema geo.offline. Estos filtros de intents en el manifiesto indican la capacidad de la app para admitir estas acciones sin conexión.

Usa un intent de navegación para llevar a cabo la solicitud de un usuario de navegar a un destino específico. Este destino puede ser una sola ubicación (dirección) o varias ubicaciones (por ejemplo, cafeterías y gasolineras). Los datos de intent siguen un formato de URI especificado para cada intent.

Formato del intent

La clase Intent usa el siguiente formato para el intent de la app de navegación:

Categoría: android.intent.category.DEFAULT

Acción:

  • Android Auto y SO Android Automotive: androidx.car.app.action.NAVIGATE
  • Otros factores de forma: android.intent.action.NAVIGATE

Esquema: geo

Ejemplos:

  • 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

Comportamiento sugerido de la app: Comienza la navegación a la ubicación especificada o se le solicita al usuario que elija entre varias opciones.

Filtros de intents del manifiesto

Declara el siguiente formato de intent en el archivo de manifiesto de tu app para que Google Assistant sepa que tu app de navegación puede recibir intents de navegación.

Todos los factores de forma, excepto Android Auto y el SO Android Automotive:

<intent-filter>
  <action android:name="android.intent.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

SO Android Auto y Android Automotive:

<intent-filter>
  <action android:name="androidx.car.app.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Parámetros proporcionados

Se espera que los siguientes parámetros estén disponibles en los datos del intent de la app de navegación proporcionados.

Búsqueda de ubicación o coordenadas geográficas

Cada consulta de intent de navegación contiene uno o ambos de estos parámetros, según el tipo de datos solicitados:

  • Consulta de ubicación

    Hace referencia a la ubicación a la que el usuario intenta navegar. Usa estos datos para resolver el destino del usuario.

    Clave de parámetro: q
    Valor: Es el destino consultado del usuario.

    Ejemplo: geo:0,0?q=Golden+Gate+Bridge
    Interpretación: El usuario quiere navegar al Puente Golden Gate.

  • Coordenadas geográficas (latitud y longitud)

    Se refiere a coordenadas específicas que usa el usuario para la navegación.

    Clave de parámetro: geo:lat,long
    Valor: Las coordenadas que consultó el usuario.

    Ejemplo: geo:1.1,2.2?mode=w&intent=navigation
    Interpretación: El usuario quiere navegar a las coordenadas (1.1, 2.2).

Parámetros opcionales

En esta sección, se describen los parámetros opcionales que se proporcionan en los datos del intent de la app de navegación.

Intent

Define la intención del usuario. Si no se establece este parámetro, el intent del usuario predeterminada se considera navigation.

Clave de parámetro: intent
Valores posibles:

  • navigation [valor predeterminado]: Reemplaza el destino y comienza la navegación. Úsalo para consultas como navegar a x.
  • add_a_stop: Agrega la parada como el siguiente destino junto con los destinos anteriores. Úsalo para consultas como agregar una parada en x.
  • directions: Muestra instrucciones sobre cómo llegar a un lugar sin iniciar la navegación. Úsalo para consultas como cómo llegar a x.

Ejemplo: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Interpretación: El usuario quiere agregar una parada a Bellevue Square, Bellevue, con las coordenadas actuales [47.6, -122.2].

Evitar

Define los elementos que se deben evitar en la navegación.

Clave de parámetro: avoid
Valores posibles:

  • f: Ferries
  • h: Autopistas
  • t: peajes

Ejemplo: geo:0,0?q=googleplex&avoid=tf
Interpretación: El usuario quiere navegar a Googleplex evitando peajes y ferries.

Medio de viaje

El modo de viaje representa el método de transporte que el usuario especifica en la consulta.

Clave de parámetro: mode
Valores posibles:

  • b: Bicicleta
  • d: viaje en auto
  • x: Taxi
  • l: Vehículo motorizado de dos ruedas
  • r: Transporte público
  • w: Caminar

Ejemplo: geo:0,0?q=Googleplex&mode=r
Interpretación: El usuario quiere navegar a Googleplex en transporte público.

Entrada

Se usa para registrar la fuente de entrada.

Valores posibles: assistant

Ejemplo: geo:47.61594547836694,-122.20373173098756?entry=assistant

Intención de búsqueda

Usa un intent de búsqueda para buscar una consulta y mostrar varios resultados a lo largo de la ruta mientras conduces.

Formato del intent

La clase Intent usa el siguiente formato para los intents de búsqueda:

Categoría: android.intent.category.DEFAULT

Acción: android.intent.action.VIEW

Esquema: geo

Ejemplo: geo:0,0?q=restaurants+nearby

Comportamiento sugerido de la app: Abre una lista de ubicaciones que se ajusten a la consulta del usuario.

Filtros de intents del manifiesto

Declara el siguiente formato de intent en el archivo de manifiesto de tu app para que Google Assistant sepa que tu app de navegación puede recibir intents de búsqueda:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Parámetros proporcionados

Se espera que los siguientes parámetros estén disponibles en los datos del intent de búsqueda proporcionados.

Consulta de ubicación

Una búsqueda de ubicación es la ubicación que el usuario busca mientras conduce. Esta consulta puede ser imprecisa o estar a lo largo de una ruta de navegación activa.

Clave de parámetro: q
Valor: Es el término de búsqueda del usuario, que puede ser un tipo de ubicación, como cafetería o universidad, pero también puede tener cuantificadores, como -cerca de mí o -con la mejor calificación.

Ejemplo: geo:0,0?q=restaurants+nearby
Interpretación: El usuario quiere buscar restaurantes cercanos.

Intent de acción personalizada

Usa un intent personalizado para acciones personalizadas, como informar accidentes y finalizar la navegación. El parámetro de consulta act define el tipo de acción principal. Puedes establecer parámetros adicionales según el tipo de acción.

Formato del intent

La clase Intent usa el siguiente formato para el intent de acción personalizada:

Categoría: android.intent.category.DEFAULT

Acción: android.intent.action.VIEW

Esquema: geo.action

Ejemplo: geo.action:?act=report&accident_type=major

Filtros de intents del manifiesto

Declara el siguiente formato de intent en el archivo de manifiesto de tu app para informarle a Asistente de Google que tu app de navegación puede recibir intents de acción personalizados.

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo.action" />
</intent-filter>

Parámetros proporcionados

Se espera que los siguientes parámetros estén disponibles en los datos del intent de la acción personalizada proporcionados:

Tipo de acción

Define el tipo de acción personalizada que un usuario desea realizar.

Clave de parámetro: act

Ejemplos:

  • geo.action:?act=report_crash&accident_type=major
    Interpretación: El usuario quiere informar un accidente grave.

  • geo.action:?act=mute
    Interpretación: El usuario quiere silenciar las instrucciones por voz.

  • geo.action:?act=exit_navigation
    Interpretación: El usuario quiere salir de la navegación actual.

Comportamiento sugerido de la app: Realiza la acción solicitada en la app de navegación o muestra un mensaje de acción no admitida.

En la siguiente imagen, se muestra un ejemplo de pares clave-valor en la consulta de respuesta:

Flujo de datos del intent de acción personalizada

Figura 2: Flujo de datos del intent de acción personalizada.

Par clave-valor:

"act": "report_crash"
"road_direction": other_side"

Cada acción personalizada siempre tiene un parámetro act como clave. En el código de ejemplo anterior, algunas acciones pueden tener pares clave-valor adicionales. Por ejemplo, act=report_crash admite estas claves adicionales: accident_type y road_direction.

La clave accident_type puede admitir dos valores, minor y major.

Valores posibles

En la tabla, se enumeran los valores posibles que Asistente de Google puede pasar como la acción que el usuario intenta realizar en la app de navegación.

Valor Descripción Claves de parámetros opcionales Valores de parámetros opcionales
allow_ferries Cambia la preferencia de ruta para permitir transbordadores.
allow_highways Cambia la preferencia de ruta para permitir las autopistas.
allow_tolls Cambia la preferencia de ruta para permitir peajes.
apply_electric_vehicle_connector_filter Solo muestra las ubicaciones de carga de VE que coincidan con el conector del automóvil.
apply_electric_vehicle_fast_charging_filter Solo muestra las ubicaciones de carga de VE que tienen cargadores rápidos.
apply_electric_vehicle_payment_filter Solo muestra las ubicaciones de carga de VE que requieren pago.
avoid_ferries Cambia la preferencia de ruta para evitar transbordadores.
avoid_highways Cambia la preferencia de ruta para evitar las autopistas.
avoid_tolls Cambia la preferencia de ruta para evitar los peajes.
clear_search_results Borra los resultados de la búsqueda en el mapa.
distance_to_destination Muestra la distancia al destino.
distance_to_next_turn Muestra la distancia hasta el siguiente giro.
eta Muestra la hora de llegada estimada al destino.
exit_navigation Salir de la navegación o cancelarla
follow_mode Cambia la vista del mapa al modo de seguimiento.
go_back Regresa a la acción de mapa anterior.
hide_satellite Cambia la configuración del mapa para ocultar la información satelital.
hide_traffic Cambia la configuración del mapa para ocultar la información del tráfico.
mute Silencia las indicaciones por voz.
query_current_road Muestra la ruta actual por la que se encuentra el usuario.
query_destination Muestra cuál es el destino.
query_next_turn Muestra cuál es el próximo turno.
remove_electric_vehicle_connector_filter Se quitó el filtrado de ubicaciones de carga de VE que coinciden con el conector del automóvil.
remove_electric_vehicle_fast_charging_filter Se quitó el filtrado de las ubicaciones de carga de VE que son cargadores rápidos.
remove_electric_vehicle_payment_filter Se quitó el filtrado de las ubicaciones de carga de VE que requieren pago.
report_crash Informar fallas accident_type minor
major
road_direction this_side
other_side
report_hazard Informar sobre peligros 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 Informar actividad policial road_direction this_side
other_side
report_road_closure Informar rutas cerradas road_closure_type partial
full
report_traffic Informa sobre el tráfico. traffic_type moderate
heavy
standstill
road_direction this_side
other_side
resume_navigation Reanudar la navegación
route_overview Mostrar descripción general de la ruta
show_alternates Mostrar rutas alternativas
show_directions_list Mostrar instrucciones paso a paso
show_satellite Muestra información satelital en el mapa.
show_traffic Mostrar el tráfico en el mapa
time_to_destination Mostrar la hora de llegada estimada al destino
time_to_next_turn Mostrar la hora de llegada estimada al siguiente giro
unmute Activar las indicaciones por voz