Implementar intents de apps de navegação

O Google Assistente usa três formatos diferentes de intents que seu app de navegação pode oferecer suporte. É possível alcançar a interoperabilidade e integrar seu app e o Google Assistente declarando os filtros de intent detalhados nesta página no manifesto do app. Para saber mais sobre intenções, consulte Intent.

A classe Intent do app de navegação do Google Assistente é compatível com as seguintes intents:

  • Intent de navegação
  • Intenção de pesquisa
  • Intent de ação personalizada

Fluxo de dados de intent

Figura 1. Fluxo de dados da intent.

Parâmetros nos dados de intent

Os dados de intent seguem um formato de URI com parâmetros com base na intent que você está transmitindo. Alguns parâmetros são sempre fornecidos nos dados. Isso significa que elas sempre terão um valor explícito. No entanto, os parâmetros opcionais nem sempre têm um valor definido nos dados. Para mais informações, consulte Teste de dados.

Intents off-line

Todas as intenções listadas nesta página têm as variantes off-line disponíveis. É possível diferenciá-los anexando .offline ao esquema. Por exemplo, a intent de navegação usa o esquema geo.offline. Esses filtros de intent no manifesto indicam a capacidade do app de oferecer suporte a essas ações off-line.

Use uma intent de navegação para atender à solicitação de um usuário de navegar até um destino específico. Esse destino pode ser um único local (endereço) ou vários locais (por exemplo, cafeterias e postos de gasolina). Os dados de intent seguem um formato de URI especificado para cada intent.

Formato da intent

A classe Intent usa o seguinte formato para a intent do app de navegação:

Categoria:android.intent.category.DEFAULT

Ação:

  • Android Auto e Android Automotive OS: androidx.car.app.action.NAVIGATE
  • Outros formatos: android.intent.action.NAVIGATE

Esquema:geo

Exemplos:

  • 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

Comportamento sugerido do app:a navegação até o local especificado é iniciada ou o usuário precisa escolher entre várias opções.

Filtros de intent do manifesto

Declare o formato de intent a seguir no arquivo de manifesto do app para que o Google Assistente saiba que o app de navegação pode receber intents de navegação.

Todos os formatos, exceto o Android Auto e o 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 e 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>

Parâmetros fornecidos

Os parâmetros a seguir devem estar disponíveis nos dados de intent do app de navegação fornecidos.

Consulta de local ou coordenadas geográficas

Cada consulta de intent de navegação contém um ou ambos esses parâmetros, dependendo do tipo de dados solicitado:

  • Consulta de local

    Se refere ao local para onde o usuário está tentando navegar. Use esses dados para resolver o destino do usuário.

    Chave do parâmetro:q
    Valor:o destino consultado pelo usuário.

    Exemplo:geo:0,0?q=Golden+Gate+Bridge
    Interpretação:o usuário quer navegar até a Ponte Golden Gate.

  • Coordenadas geográficas (latitude e longitude)

    Refere-se a coordenadas específicas usadas pelo usuário para navegação.

    Chave do parâmetro:geo:lat,long
    Valor:as coordenadas consultadas do usuário.

    Exemplo:geo:1.1,2.2?mode=w&intent=navigation
    Interpretação:o usuário quer navegar até as coordenadas (1.1, 2.2).

Parâmetros opcionais

Os parâmetros opcionais fornecidos nos dados de intent do app de navegação são descritos nesta seção.

Intent

Define a intenção do usuário. Se esse parâmetro não for definido, a intent do usuário padrão será considerada como navigation.

Chave do parâmetro:intent
Valores possíveis:

  • navigation [valor padrão] - substitui o destino e inicia a navegação. Use isso para consultas como navegar até x.
  • add_a_stop: adiciona a parada como o próximo destino com os destinos anteriores. Use essa opção para consultas como adicionar uma parada em x.
  • directions: mostra as direções da rota sem iniciar a navegação. Use essa opção para consultas como directions to x.

Exemplo:geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Interpretação:o usuário quer adicionar uma parada em Bellevue Square, Bellevue, com as coordenadas atuais [47,6, -122,2].

Evitar

Define o que evitar na navegação.

Chave do parâmetro:avoid
Valores possíveis:

  • f - balsas
  • h: rodovias
  • t: pedágios

Exemplo:geo:0,0?q=googleplex&avoid=tf
Interpretação:o usuário quer navegar até o Googleplex evitando pedágios e balsas.

Modo de viagem

O modo de viagem representa o método de transporte especificado na consulta pelo usuário.

Chave do parâmetro:mode
Valores possíveis:

  • b - bicicleta
  • d - drive
  • x: táxi
  • l: veículo com duas rodas
  • r: transporte público
  • w: a pé

Exemplo:geo:0,0?q=Googleplex&mode=r
Interpretação:o usuário quer navegar até o Googleplex usando transporte público.

Entrada

Usado para registrar a origem da entrada.

Valores possíveis: assistente

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

Intenção de pesquisa

Use uma intenção de pesquisa para procurar uma consulta e mostrar vários resultados ao longo do trajeto enquanto dirige.

Formato da intent

A classe Intent usa o seguinte formato para intents de pesquisa:

Categoria:android.intent.category.DEFAULT

Ação:android.intent.action.VIEW

Esquema:geo

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

Comportamento sugerido do app:abra uma lista de locais que se encaixam na consulta do usuário.

Filtros de intent do manifesto

Declare o seguinte formato de intent no arquivo de manifesto do app para que o Google Assistente saiba que o app de navegação pode receber intents de pesquisa:

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

Parâmetros fornecidos

Os parâmetros a seguir devem estar disponíveis nos dados de intent de pesquisa fornecidos.

Consulta de local

Uma consulta de local é o local que o usuário está procurando enquanto dirige. Essa consulta pode ser imprecisa ou estar em uma rota de navegação ativa.

Chave do parâmetro:q
Valor:o termo de pesquisa do usuário, que pode ser um tipo de local, como coffee shop ou college, mas também pode ter quantificadores, como -near me ou -with best rating.

Exemplo:geo:0,0?q=restaurants+nearby
Interpretação:o usuário quer pesquisar restaurantes nas proximidades.

Intent de ação personalizada

Use uma intent personalizada para ações personalizadas, como informar acidentes e encerrar a navegação. O tipo de ação principal é definido pelo parâmetro de consulta act. É possível definir outros parâmetros dependendo do tipo de ação.

Formato da intent

A classe Intent usa o seguinte formato para a intent de ação personalizada:

Categoria:android.intent.category.DEFAULT

Ação:android.intent.action.VIEW

Esquema:geo.action

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

Filtros de intent do manifesto

Declare o formato de intent abaixo no arquivo de manifesto do app para informar ao Google Assistente que o app de navegação pode receber intents de ação personalizada.

<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 fornecidos

Os parâmetros a seguir devem estar disponíveis nos dados de intent de ação personalizada fornecidos:

Tipo de ação

Ele define o tipo de ação personalizada que o usuário quer realizar.

Chave do parâmetro:act

Exemplos:

  • geo.action:?act=report_crash&accident_type=major
    Interpretação:o usuário quer informar um acidente grave.

  • geo.action:?act=mute
    Interpretação:o usuário quer desativar as instruções por voz.

  • geo.action:?act=exit_navigation
    Interpretação:o usuário quer sair da navegação atual.

Comportamento sugerido do app:realize a ação solicitada no app de navegação ou mostre uma mensagem de ação não compatível.

A figura a seguir mostra um exemplo de pares de chave-valor na consulta de resposta:

Fluxo de dados de intent de ação personalizada

Figura 2. Fluxo de dados de intent de ação personalizada.

Par de chave-valor:

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

Todas as ações personalizadas têm um parâmetro act como chave. No código de exemplo mencionado, algumas ações podem ter outros pares de chave-valor. Por exemplo, act=report_crash oferece suporte a estas outras chaves: accident_type e road_direction.

A chave accident_type pode aceitar dois valores, minor e major.

Valores possíveis

A tabela lista os valores possíveis que o Google Assistente pode transmitir como a ação que o usuário está tentando realizar no app de navegação.

Valor Descrição Chaves de parâmetro opcionais Valores de parâmetro opcionais
allow_ferries Mude a preferência de rota para permitir balsas.
allow_highways Alterar a preferência de rota para permitir rodovias.
allow_tolls Mude a preferência de rota para permitir pedágios.
apply_electric_vehicle_connector_filter Mostrar apenas os locais de recarga de VEs que correspondem ao conector do carro.
apply_electric_vehicle_fast_charging_filter Mostrar apenas os locais de recarga de VEs que são carregadores rápidos.
apply_electric_vehicle_payment_filter Mostrar apenas os locais de recarga de VEs que exigem pagamento.
avoid_ferries Mudar a preferência de rota para evitar balsas.
avoid_highways Mudar a preferência de rota para evitar rodovias.
avoid_tolls Mudar a preferência de trajeto para evitar pedágios.
clear_search_results Limpar os resultados da pesquisa no mapa.
distance_to_destination Mostrar a distância até o destino.
distance_to_next_turn Mostrar a distância até a próxima instrução.
eta Mostrar o HEC até o destino.
exit_navigation Sair ou cancelar a navegação.
follow_mode Mudar a visualização do mapa para o modo de acompanhamento.
go_back Voltar à ação anterior do mapa.
hide_satellite Mude a configuração do mapa para ocultar informações de satélite.
hide_traffic Mudar a configuração do mapa para ocultar as informações de trânsito.
mute Desativar a orientação por voz.
query_current_road Mostre qual é a via atual do usuário.
query_destination Mostre qual é o destino.
query_next_turn Mostre qual é a próxima jogada.
remove_electric_vehicle_connector_filter Remova a filtragem para locais de carregamento de VEs que correspondem ao conector do carro.
remove_electric_vehicle_fast_charging_filter Remover a filtragem de locais de recarga de VEs que são carregadores rápidos.
remove_electric_vehicle_payment_filter Remover a filtragem de locais de recarga de VEs que exigem pagamento.
report_crash Alertar sobre acidentes. accident_type minor
major
road_direction this_side
other_side
report_hazard Denunciar perigos. 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 Denunciar atividade policial. road_direction this_side
other_side
report_road_closure Alertar sobre vias interditadas. road_closure_type partial
full
report_traffic Alertar sobre trânsito. traffic_type moderate
heavy
standstill
road_direction this_side
other_side
resume_navigation Retomar a navegação.
route_overview Mostrar a visão geral do trajeto.
show_alternates Mostrar rotas alternativas.
show_directions_list Mostrar instruções detalhadas.
show_satellite Mostrar informações de satélite no mapa.
show_traffic Mostrar o trânsito no mapa.
time_to_destination Mostrar o tempo estimado de chegada ao destino.
time_to_next_turn Mostrar a hora de chegada na próxima curva.
unmute Ative a orientação por voz.