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 de navegação que cada usuário precisa aceitar. Essa caixa de diálogo permite que o usuário concorde com os Termos de Serviço. Um arquivo de texto dos termos é fornecido com o SDK de navegação. Use o método NavigationApi.showTermsAndConditionsDialog para exibir a caixa de diálogo que contém os termos.
Todos os idiomas aceitos pelo Google Maps para dispositivos móveis estão automaticamente disponíveis para o SDK de navegação. 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 sendo executado em segundo plano. O app continua ajustando a posição à via e mantém a direção.

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

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

Rede e conectividade

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

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

  • Se mais de 10 segundos se passaram desde que ele recebeu um sinal de GPS pela última vez.
  • Se a posição do trajeto tiver se movido mais de 500 m 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 do trajeto, indicado no app pela posição da divisa, poderá ficar mais lento 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 quando não recebe um sinal de GPS. No entanto, talvez ele não consiga fornecer orientações até receber um sinal novamente.

O modo off-line está disponível?
Não, o SDK do Navigation não oferece um modo off-line no momento. No entanto, ele fornece informações pré-armazenadas em cache para um trajeto.

Dados

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

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

A navegação guiada está disponível no início de um trajeto?
Sim. O SDK do Navigation fornece uma lista de trechos de trajeto. Além disso, o usuário pode deslizar o card de rotas no cabeçalho para ver cada manobra.
Como o HEC é 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 você faz com o HEC do motorista.
O RoadSnappedLocationProvider pode ser usado para obter o local 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 é compatível com fronteiras geográficas virtuais?

Não. No contexto da navegação, 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 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. Confira 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 mais frequentes. Em seguida, inspecione a distância restante para determinar se você está perto o suficiente do local de retirada/entrega.

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; TRUE ativa as notificações.

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

Personalização da interface

Posso usar cores para identificar a melhor opção de trajeto?
Não. No momento, não é possível usar cores para codificar uma opção de trajeto específica.
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 ponto de passagem atual usando NavigationFragment.setEtaCardEnabled(false).
  3. Renderizar o HEC do destino final.
Como faço para 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 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 para 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. Para influenciar o trajeto padrão, adicione preferências à solicitação, como "evitar rodovias e pedágios". Adicionar waypoints também afeta o trajeto.
Posso mostrar ao usuário do app um rótulo para o destino diferente do local de destino 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 rastrear desvios de um trajeto definido?

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

  1. Registre um listener que verifique 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 sobre o HEC e a distância.
    • Rastrear a localização do dispositivo.
    • [opcional] Adicione outros recursos necessários para que o app lide com o usuário 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.

O SDK do Navigation é compatível com rotas e navegação para caminhões e veículos grandes?

Sim. Com o trajeto de veículos grandes (LVR, na sigla em inglês), é possível transmitir tokens de trajeto específicos para caminhões gerados pela API Routes ou API Route Optimization ao SDK do Navigation. O SDK oferece navegação guiada com avisos de trajeto (altura, peso, materiais perigosos e restrições para caminhões) e mantém o perfil físico do veículo durante o traçado de novos trajetos dinâmicos. Para mais detalhes, consulte Navegar em rotas para veículos grandes.

Simulador

O simulador é compatível com mudanças de trajeto?

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 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 é acionado quando o usuário do app clica na notificação. Normalmente, o Navigator.startguidance(getIntent()) é chamado na atividade principal, que chama a atividade novamente quando o usuário do app clica na notificação.

Serviços de mobilidade

Qual é a diferença no uso do SDK do Navigation para clientes dos Serviços de Mobilidade?

Os Serviços de Mobilidade da Plataforma Google Maps oferecem um conjunto de APIs e SDKs para atender às necessidades de empresas de transporte e logística. Para clientes dos Serviços de Mobilidade, o SDK do Navigation geralmente é usado em conjunto com serviços relacionados para otimização de rotas, despacho, planilha de controle de tarefas, análise de frotas e muito mais. O SDK do Navigation também é faturado de forma diferente para clientes dos 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 cliente dos Serviços de Mobilidade?
Se você não tiver certeza se está implementando o SDK do Navigation como cliente dos Serviços de Mobilidade, procure uma chamada ReportBillableEvent no seu código. Somente os clientes dos Serviços de Mobilidade devem chamar o método ReportBillableEvent.

Como o SDK do Navigation é faturado para clientes dos Serviços de Mobilidade?
Para clientes dos 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 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 de navegação devem ser usadas apenas por clientes dos Serviços de Mobilidade?

Há várias APIs no SDK de navegação que são 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 dos Serviços de Mobilidade, os seguintes métodos não vão funcionar:

Se eu for cliente dos Serviços de Mobilidade, também posso usar uma implementação do SDK de navegação que não seja dos Serviços de Mobilidade?

Sim, os clientes dos Serviços de Mobilidade podem usar as implementações do SDK de navegação com e sem os Serviços de Mobilidade. No entanto, só é possível usar um tipo de implementação em um app por vez. Você também precisa 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 do Navigation.

Para mais informações sobre como usar uma implementação do SDK de navegação 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 o representante da sua Conta do Google.

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