Perguntas frequentes

Detalhes do produto

Rede e conectividade

Dados

Personalização da interface

Roteamento

Simulador

Fluxos de trabalho

Serviços de mobilidade

Detalhes do produto

Seu app precisa implementar uma caixa de diálogo com o aviso dos Termos de Serviço do SDK Navigation que cada usuário precisa aceitar. Essa caixa de diálogo dá ao usuário a oportunidade de concordar com os Termos de Serviço. Um arquivo de texto com os termos é fornecido com o SDK Navigation. Use o método NavigationApi.showTermsAndConditionsDialog para mostrar a caixa de diálogo com os termos.
Todos os idiomas compatíveis com o Google Maps para dispositivos móveis estão automaticamente disponíveis para o SDK 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. Depois de iniciado, o LocationListener continua em execução em segundo plano. O app continua a fazer o ajuste de posição e mantém o rolamento.

Sim. Quando uma rota é criada ou alterada, o RouteChangeListener fornece polilinhas.

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

Rede e conectividade

Como o SDK Navigation lida com a conectividade de rede ruim?
O SDK Navigation faz o pré-armazenamento em cache do trajeto para cada viagem. As informações pré-armazenadas em cache incluem dados de trajeto por 15 a 20 minutos e alternativas de trajeto caso o usuário se desvie do caminho. O SDK Navigation aproxima a posição usando o GPS e os sensores do dispositivo.
Como o SDK Navigation lida com sinais de GPS fracos ou perdidos?

Depois que a navegação é iniciada e o SDK Navigation recebe um sinal de GPS pelo menos uma vez, ele mostra a mensagem "Procurando GPS..." nas seguintes situações:

  • Se já se passaram mais de 10 segundos desde que ele recebeu um sinal de GPS pela última vez.
  • Se a posição do trajeto tiver mudado mais de 500 metros desde que recebeu um sinal de GPS pela última vez.

Se o SDK não receber um sinal de GPS por um período prolongado, o progresso ao longo da rota, indicado no app pela posição do chevron, poderá diminuir até parar completamente. Nesse caso, o chevron no mapa vai permanecer no local indicado pelo último sinal de GPS. O SDK não sai automaticamente do modo de navegação por não receber um sinal de GPS. No entanto, talvez ele não consiga dar orientações até receber um novo sinal.

Existe um modo off-line?
Não, o SDK Navigation não oferece um modo off-line no momento. No entanto, ele fornece informações pré-armazenadas em cache para uma viagem.

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().

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

Siga estas etapas para informar a ETA aos usuários do app:

  1. Recupere o tempo e a distância para todos os waypoints usando Navigator.getTimeAndDistanceList().
  2. Encaminhe essas informações para o aplicativo cliente, assim como faz com a ETA do motorista.
O RoadSnappedLocationProvider pode ser usado para obter 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 geocerca pode não considerar a geometria da via e não estar centralizada no ponto exato para onde 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, vai 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 com mais frequência. Em seguida, verifique 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 Navegação está em segundo plano?

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

O gravador de transações rastreia retiradas e entregas com um ID exclusivo, que o Google registra para fins de análise de produtos. Se você é um cliente dos Serviços de mobilidade, o Google recomenda que você implemente o NavigationTransactionRecorder para registrar um histórico das suas transações.

Personalização da interface

Posso usar cores para indicar a melhor opção de trajeto?
Não. No momento, não é possível usar cores para uma opção de trajeto específica.
O SDK Navigation pode mostrar o HEC do destino final?

Sim. Use os seguintes métodos:

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

Para desativar os cards de ETA, 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 da cor 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 um trajeto específico a um usuário ou remover trajetos alternativos?
Não. Por padrão, várias rotas são fornecidas, e a mais rápida tem prioridade. Você pode afetar a rota padrão adicionando preferências, como "evitar rodovias e pedágios", à sua solicitação. Adicionar pontos de referência também afeta o trajeto.
Posso mostrar ao usuário do app um rótulo diferente para o destino do que o local de destino padrão?

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

Posso usar o SDK Navigation para rastrear desvios de um caminho definido?

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

  1. Registre um listener que verifique a posição do dispositivo ao longo da rota usando o método Navigator.setRouteChangedListener.
  2. Adicione código ao gerenciador de eventos de callback, onRouteChanged:
    • Envie uma mensagem para o usuário do app com informações atualizadas sobre HEC e distância.
    • Rastrear a localização do dispositivo.
    • [opcional] Adicione outros recursos necessários para o app 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 é compatível com mudanças de rota?

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

Fluxos de trabalho

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

A notificação de navegaçã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 o Navigator.startGuidance(intent resumeIntent). O resume intent é disparado quando o usuário do app clica na notificação. Normalmente, o Navigator.startguidance(getIntent()) é chamado da atividade principal, que a chama de volta quando o usuário do app clica na notificação.

Serviços de mobilidade

Como o uso do SDK Navigation é diferente para clientes de serviços de mobilidade?

Os Serviços de mobilidade da Plataforma Google Maps oferecem uma coleção de APIs e SDKs para ajudar a atender às necessidades de transporte e logística das empresas. Para clientes de serviços de mobilidade, o SDK Navigation é usado normalmente com serviços relacionados para otimização de rotas, despacho, rastreamento de tarefas, análise de frota e muito mais. O SDK Navigation também é faturado de maneira diferente para clientes de serviços de mobilidade. Para mais informações, consulte a documentação dos Serviços de mobilidade.

No momento, os produtos de mobilidade estão disponíveis apenas para clientes selecionados. Entre em contato com seu representante de vendas para mais informações.

Como saber se sou um cliente dos Serviços de mobilidade?
Se você não tiver certeza se está implementando o SDK Navigation como cliente dos Serviços de mobilidade, procure uma chamada ReportBillableEvent no seu código. Apenas clientes do Mobility Services podem chamar o método ReportBillableEvent.

Como o SDK Navigation é faturado para clientes de serviços de mobilidade?
Para clientes de serviços de mobilidade, o faturamento e os preços do SDK Navigation dependem do contrato de serviço que você tem com a Plataforma Google Maps. Para informações sobre como verificar se a implementação dos Serviços de mobilidade está sendo faturada corretamente, consulte Validação de faturamento. Para mais informações sobre o faturamento dos Serviços de mobilidade, entre em contato com seu representante de vendas.

Quais APIs do SDK Navigation só podem ser usadas por clientes de serviços de mobilidade?

Há várias APIs no SDK Navigation destinadas apenas ao uso por clientes dos Serviços de mobilidade, que são cobrados pelo Google por transação. Se você não for um cliente do Mobility Services, os métodos a seguir não farão nada:

Se eu for cliente do Mobility Services, também poderei usar uma implementação do SDK Navigation que não seja do Mobility Services?

Sim, os clientes do Mobility Services podem usar implementações do SDK Navigation para Mobility Services e para outros serviços. No entanto, só é possível usar um tipo de implementação em um app por vez. Também é necessário criar um novo projeto do Google Cloud, uma conta de faturamento e uma chave de API, separados daqueles que você usa com a implementação dos Serviços de mobilidade. Para mais informações, consulte a visão geral da configuração do SDK Navigation.

Para mais informações sobre como usar uma implementação do SDK Navigation que não seja dos Serviços de mobilidade, incluindo a migração de um app de um tipo de implementação para outro, entre em contato com seu representante da Conta do Google.

Observação: se você não é cliente dos Serviços de mobilidade e quer saber mais sobre a coleção de APIs e SDKs dos Serviços de mobilidade, entre em contato com a equipe de vendas da Plataforma Google Maps.