Perguntas frequentes

Detalhes do produto

Rede

Dados

Personalização da interface

Roteamento

Simulador

Fluxos de trabalho

Detalhes do produto

Seu app precisa implementar uma caixa de diálogo com o aviso dos Termos de Serviço do SDK do Navigation que precisa ser aceito por cada usuário. Essa caixa de diálogo dá ao usuário a oportunidade de concordar com os Termos de Serviço. Um arquivo de texto dos termos é fornecido com o SDK do Navigation. Use o método NavigationApi.showTermsAndConditionsDialog para exibir a caixa de diálogo que contém os termos.
Todos os idiomas compatíveis com o Google Maps para dispositivos móveis são disponibilizados automaticamente no SDK do Navigation. Um dispositivo tem um idioma padrão do sistema e um app não pode mudar essa configuração. No entanto, o app tem acesso a mais de 70 idiomas.

Sim. Uma vez iniciado, o LocationListener continua em execução em segundo plano. Seu app continua a ajustar a posição da via e mantém a direção.

Sim. Quando um trajeto é criado ou alterado, o RouteChangeListener fornece polilinhas.

Não, o SDK do Navigation não exige que o Google Maps para dispositivos móveis esteja instalado no dispositivo.
Não, o SDK do Navigation não oferece esse recurso no momento.
Sim. A direção do tráfego está disponível e é exibida por padrão.
Quais versões do JDK são compatíveis com o SDK do Navigation?
O SDK do Navigation é compatível com versões LTS do Java SE com suporte ativo da Oracle. Essas versões estão listadas como tendo Suporte Premier no Roteiro de suporte do Java SE da Oracle.

Rede

Como o SDK do Navigation lida com uma conectividade ruim?
O SDK do Navigation pré-armazena em cache o trajeto de cada jornada. As informações pré-armazenadas em cache incluem informações de trajeto de 15 a 20 minutos e alternativas de trajeto caso o usuário se desvie da rota. O SDK do Navigation faz uma aproximação da posição usando o GPS e os sensores do dispositivo.
O modo off-line está disponível?
Não, o SDK do Navigation não oferece um modo off-line no momento. No entanto, o SDK fornece informações pré-armazenadas em cache para uma jornada.

Dados

Posso recuperar todas as paradas/destinos em uma viagem antes de iniciar o trajeto?

Sim. Para recuperar as rotas de um trajeto, chame Navigator.getRouteSegments().

A orientação de trajeto passo a passo está disponível no início de um trajeto?
Sim. O SDK do Navigation oferece uma lista de segmentos de trajeto. Além disso, o usuário pode deslizar o card de rotas no cabeçalho para conferir cada manobra.
Como o ETA é comunicado aos usuários do app?

Siga estas etapas para fornecer informações de HEC aos usuários do app:

  1. Recupere o tempo e a distância de todos os waypoints usando Navigator.getTimeAndDistanceList().
  2. Encaminhe essas informações para o aplicativo cliente, como faz para o HEC do motorista.
O RoadSnappedLocationProvider poderá ser usado para acessar a localização atual do usuário se a navegação não estiver em primeiro plano?

Sim. O RoadSnappedLocationProvider é executado em segundo plano por padrão.

O SDK do Navigation oferece suporte à fronteira geográfica virtual?

Não. No contexto da navegação, remainingTimeOrdistanceChangeListener tem uma vantagem sobre uma fronteira geográfica virtual. A fronteira geográfica virtual pode não considerar a geometria da via e não estar centralizada no ponto exato para o qual o usuário está navegando.

É possível aproximar esse recurso usando remainingTimeOrdistanceChangeListener.

  1. Defina o limite para determinar a frequência dos callbacks.
  2. Verifique a distância restante até o destino.

Por exemplo, se você definir o limite como 100 m, receberá um callback quando a distância até o destino mudar em 100 m. À medida que a distância diminui, você pode atualizar esse limite para um valor menor e receber callbacks mais frequentes. Em seguida, inspecione a distância restante para determinar se você está perto o suficiente do local de embarque/desembarque.

Posso desativar as notificações quando o app de navegação estiver em segundo plano?

Sim. Use Navigator.setHeadsUpNotificationEnabled para controlar as notificações. Esse método tem um argumento booleano. FALSE desativa as notificações, e o TRUE ativa as notificações.

O gravador de transações rastreia coletas e entregas com um ID exclusivo, que o Google registra para fins de análise do produto. Se você for um cliente de serviços de mobilidade, o Google recomenda que você implemente o NavigationTransactionRecorder para registrar um registro das suas transações.

Personalização da interface

Posso codificar por cores a melhor opção de trajeto?
Não. No momento, não é possível definir as cores de um trajeto específico.
O SDK do Navigation pode mostrar o HEC para o destino final?

Sim. Use os seguintes métodos:

  1. Recupere o tempo e a distância de todos os waypoints usando Navigator.getTimeAndDistanceList().
  2. Oculte o HEC do waypoint atual usando NavigationFragment.setEtaCardEnabled(false).
  3. Renderize o ETA de destino final.
Como posso ocultar as atualizações de HEC?

Para desativar os cartões HEC, chame navigationView.setEtaCardEnabled(false).

Quais personalizações de interface estão disponíveis para os cards de cabeçalho e rodapé?

Use StylingOptions para definir o estilo de cor do plano de fundo. Para ocultar ou mostrar o cabeçalho e o rodapé, use as funções de membro setHeaderEnabled e setFooterEnabled de NavigationFragment.

Roteamento

Posso fornecer uma rota específica a um usuário ou remover rotas alternativas?
Não. Por padrão, várias rotas são fornecidas, e a mais rápida tem prioridade. Você pode afetar o trajeto padrão adicionando preferências, como "evitar rodovias e pedágios", à solicitação. Adicionar waypoints também afeta o trajeto.
Posso mostrar ao usuário do app um rótulo para o destino diferente do padrão?

Sim. Crie um Marker com um título personalizado para o destino e a latitude/longitude. O SDK do Navigation mostra o título personalizado e as coordenadas no NavigationMap.

Posso usar o SDK do Navigation para acompanhar os desvios de um caminho definido?

Sim. Use Navigator.setRouteChangedListener para receber notificações quando uma rota mudar ou um novo trajeto for recomendado:

  1. Registre um listener que verifica a posição do dispositivo ao longo do trajeto usando o método Navigator.setRouteChangedListener.
  2. Adicione o código ao manipulador de eventos de callback, onRouteChanged:
    • Envie uma mensagem ao usuário do app com informações atualizadas de HEC e distância.
    • Monitore a localização do dispositivo.
    • [opcional] Adicione outros recursos exigidos pelo app para processar quando o usuário estiver fora do trajeto prescrito.
O usuário pode sair da navegação sem concluir o trajeto?

Sim. Chame o método Navigator.stopGuidance() para interromper a navegação.

Simulador

O simulador aceita mudanças de rota?

Sim. Chame simulateLocationsAlongNewRoute para simular uma jornada que inclui uma mudança de trajeto. O método simulateLocationsAlongExistingRoute ignora as mudanças na rota atual.

Fluxos de trabalho

Como faço para dispensar a notificação depois de fechar uma atividade que contém um fragmento de navegação?

A notificação permanece visível durante a navegação, quando a atividade é fechada. Quando o veículo chega ao destino, a navegação é interrompida, e a notificação desaparece.

Para processar cliques na notificação, use Navigator.startGuidance(intent resumeIntent). O resume intent é acionado quando o usuário do app clica na notificação. Normalmente, o Navigator.startguidance(getIntent()) é chamado na atividade principal, que a lembra quando o usuário do app clica na notificação.