Notas da versão

Este registro de alterações detalha os novos recursos e correções de bugs em cada versão do SDK do Navigation para Android.

18 de outubro de 2021: congelamento do suporte aos níveis 23, 24 e 25 das APIs

Em resposta a mudanças nas nossas dependências internas, as APIs Android de nível 23, 24 e 25 (Android 6, 7.0 e 7.1) não vão ter suporte em novas versões dos SDKs de navegação e driver para Android a partir do terceiro trimestre de 2022.

Os SDKs do Navigation e do driver para versões do Android lançados no terceiro trimestre de 2022 vão oferecer suporte apenas a dispositivos com, no mínimo, o nível 26 da API do Android.

As versões do app criadas com a v4.x ou versões anteriores dos SDKs de navegação e driver para Android vão continuar funcionando em dispositivos com o nível 25 da API do Android e versões anteriores.

Aviso de descontinuação (21 de junho de 2021)

Este anúncio descreve as descontinuações dos SDKs do Navigation para Android e do Driver para Android a partir da data listada acima. Ele também foi enviado como um aviso de serviço obrigatório (MSA, na sigla em inglês) para os clientes afetados.

Descontinuação do SDK do Navigation para Android e do SDK do Driver para Android v1.x

O SDK Nav/Driver v1 foi lançado em 2018 e, com nossas versões v3 que serão lançadas em breve, é hora de descontinuar a v1 para evitar a insistência do suporte a muitas versões principais.

O tempo economizado por não ter suporte para essa versão adicional nos permitirá oferecer um suporte melhor à versão principal mais recente e criar mais recursos importantes para nossos clientes.

Portanto, o SDK Nav/Driver v1.x foi descontinuado e não será mais mantido após 21 de junho de 2022.

Saiba como funcionam as descontinuações de versões do SDK.

Consulte as notas da versão v2/v3 do SDK do Navigation para Android para ver mais informações sobre a descontinuação do Android.

Versão 1.51.1 (1o de abril de 2022)

Estabilidade e correções de bugs

  • Corrige um hiperlink corrompido na caixa de diálogo dos Termos de Serviço.

  • Alguns clientes receberam um erro na caixa de diálogo dos Termos de Serviço quando a atividade do Android foi destruída. Agora, os clientes não perceberão mais esse erro de caixa de diálogo quando uma atividade for destruída.

Versão 1.51 (18 de janeiro de 2022)

Mudanças na API

  • Aumenta o nível mínimo da API Android do SDK do Navigation para 23 e aumenta o nível desejado da API para 30. Essa versão de destino está de acordo com os requisitos do Google Play.

  • Renderiza a polilinha que segue a seta de navegação na cor "cinza" para indicar que o usuário já atravessou aquela seção do trajeto.

Versão 1.50 (3 de novembro de 2021)

  • Variante Jetified da versão 1.22. Nenhuma mudança foi feita além do uso das bibliotecas do AndroidX.

Versão 1.22 (7 de outubro de 2021)

Estabilidade e correções de bugs

  • Correção de um bug na câmera em que a câmera para de seguir o local do usuário depois que stopNavigation é chamado.
  • Corrige um bug da câmera em que o botão "Recentralizar" aparece após aplicar o back-gover no app.
  • Corrige um possível problema de vazamento de memória.
  • Corrige um bug que causava problemas de ANR.
  • Impede uma falha originada pela caixa de diálogo dos Termos de Serviço.

Suspensões de uso

  • Descontinuação de #setDestinations com token de rota em favor de uma nova API que usa CustomRoutesOptions.

Novos recursos

  • Foi adicionado um recurso de retirada assistiva que adiciona um novo ícone à interface de rodapé de navegação
  • Adiciona suporte de motocicleta para rotas personalizadas.

Versão 1.21.1 (13 de julho de 2021)

Estabilidade e correções de bugs

  • Corrige um IllegalStateException associado a uma verificação de pré-condições muito restritiva no código de implementação.
  • Corrige um NullPointerException em NavigationView.onDestroy().

Versão 1.21 (23 de junho de 2021)

Mudanças na API

  • Listeners de velocidade agora são compatíveis com a navegação headless. Isso possibilita monitorar a velocidade sem renderizar primeiro uma View ou uma Fragment no SDK do Navigation.

Estabilidade e correções de bugs

  • Melhoria na robustez do carregamento de blocos de mapa no modo noturno nas primeiras instalações de apps.

Suspensões de uso

Os seguintes métodos foram descontinuados e substituídos por Navigator.setSpeedAlertOptions():

  • NavigationView.setSpeedAlertOptions()
  • SupportNavigationFragment.setSpeedAlertOptions()
  • NavigationFragment.setSpeedAlertOptions()

Versão 1.20.1 (14 de julho de 2021)

Estabilidade e correções de bugs

  • Corrige um IllegalStateException associado a uma verificação de pré-condições muito restritiva no código de implementação.
  • Corrige um NullPointerException em NavigationView.onDestroy().

Versão 1.20 (9 de março de 2021)

  • Nova dependência obrigatória adicionada. Adicione as dependências abaixo às listas de dependências do Gradle para evitar falhas no ambiente de execução: api 'joda-time:joda-time:2.9.9'.

Estabilidade e correções de bugs

  • Foi corrigido um problema em que os consumidores do SDK de navegação que usavam o Joda-Time entravam em conflitos com a versão ofuscada do jodatime, que era empacotada na nossa biblioteca
  • Correção de um problema em que o SDK do Navigation oculta acidentalmente notificações do app do consumidor ao iniciar uma sessão de navegação

Versão 1.19 (15 de dezembro de 2020)

Mudanças na API

  • O DriverSDK agora sempre envia dados de tráfego para o FleetEngine. Anteriormente, esse comportamento era determinado pela sinalização UpdateVehicleResponse, que agora é ignorada.

  • O construtor do FleetEngine mudou. Wrappers foram adicionados para AuthTokenFactory e StatusListener.

  • Foram adicionados dois novos métodos à API Navigator para permitir a configuração e a remoção de listeners para novas sessões de navegação.

  • Foi adicionado um novo método à API Navigator para receber os IDs de transação da sessão de navegação em andamento. Essa API precisa ser usada quando uma nova sessão de navegação é iniciada e quando os IDs de transação mudam em uma sessão de navegação em andamento (por exemplo, quando a lista de segmentos da jornada é atualizada).

Versão 1.18 (9 de outubro de 2020)

  • Incluímos o método setAbnormalTerminationReportingEnabled(boolean). Esse método permite que os usuários desativem o monitoramento de detecção de falhas.

  • Correção de um bug em que não era possível cancelar o registro de LocationListeners no evento onLocationChange.

  • Correção de uma falha de gRPC em que não era possível instanciar io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider.

Versão 1.17 (27 de agosto de 2020)

  • Agora você pode transmitir um token de rota ao NavSDK para recuperar a rota representada por esse token. O token de rota é associado a uma resposta de rota quando você chama a API Routes Preferred. A nova API é Navigator#setDestination(List<Waypoint> destinations, String routeToken).

  • Adição de algumas novas dependências obrigatórias. Adicione as dependências abaixo às listas de dependências do Gradle para evitar falhas no ambiente de execução:

    api 'com.google.android.datatransport:transport-api:2.2.0' api 'com.google.android.datatransport:transport-backend-cct:2.2.0' api 'com.google.android.datatransport:transport-runtime:2.2.0'

Versão 1.16 (10 de agosto de 2020)

Novos recursos

Estabilidade e correções de bugs

  • O método NavigationApi.cleanUp foi descontinuado devido a efeitos colaterais indesejados, como NullPointerExceptions, que causam falhas

  • Waypoint.fromLatLng() e Waypoint.fromPlaceId() foram descontinuados e substituídos por Waypoint.builder().

  • A classe AddressListener, contida no NavigationTransactionRecorder, foi descontinuada porque não está sendo usada.

Versão 1.15 (23 de março de 2020)

Novos recursos

  • Fontes/cores/ícones personalizáveis para o cabeçalho de navegação.

  • Oferecer suporte à personalização da cor das faixas recomendadas na interface do cabeçalho de navegação.

  • Atualiza várias APIs para seguir o padrão de adição e remoção para definir callbacks/listeners. Os métodos set* anteriores foram marcados como descontinuados e serão removidos em uma versão futura. Os métodos descontinuados listados aqui:

    • SupportNavigationFragment.setOnNightModeChangedListener
    • SupportNavigationFragment.setOnRecenterButtonClickedListener
    • NavigationFragment.setOnNightModeChangedListener
    • NavigationFragment.setOnRecenterButtonClickedListener
    • NavigationView.setOnNightModeChangedListener
    • NavigationView.setOnRecenterButtonClickedListener
    • Navigator.setArrivalListener
    • Navigator.setRouteChangedListener
    • Navigator.setRemainingTimeOrDistanceChangedListener

Estabilidade e correções de bugs

  • Aumentamos a minSdkVersion do navsdk para 19.

  • Correção de um bug em que os nomes dos pontos de referência de latitude/longitude não eram respeitados em caso de falha na geocodificação inversa do lado do servidor.

Versão 1.14 (2 de fevereiro de 2020)

Novos recursos

  • (Beta) O operador pode influenciar as opções de trajeto seguidas pelo motorista definindo a distância desejada para a rota na solicitação de rota. Esse recurso está na versão Beta. Se você tiver interesse, entre em contato com seu representante de engenharia de clientes para saber mais.

  • Compile o SDK para a API 29.

Estabilidade e correções de bugs

  • Correção de um bug na caixa de diálogo de Termos de Serviço que impedia que a solicitação "Aceitar" fosse obrigatória para os motoristas.

  • O comportamento de processamento de exceções foi modificado nos componentes do NDK para evitar uma condição de falha.

Versão 1.13 (8 de novembro de 2019)

Novos recursos

  • Agora os motoristas podem receber alertas de velocidade quando ultrapassam o limite de velocidade. É possível personalizar a aparência dos ícones de alerta de velocidade. Conforme detalhado nos Termos de Serviço do Google Maps para empresas, o Google não garante a qualidade de qualquer recurso, incluindo a precisão do recurso de alerta de velocidade. Os alertas de velocidade são usados apenas para fins informativos.

  • Foi adicionada uma nova opção de trajeto (RoutingOptions), que permite mostrar rotas alternativas durante a prévia do trajeto.

  • Foi adicionada uma nova perspectiva de câmera que mostra uma visualização de cima para baixo do trajeto, com o trajeto orientado de modo que o veículo esteja sempre voltado para frente. É possível configurar essa perspectiva chamando NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP).

  • Foi adicionada uma nova API (resetFreeNav() em RoadSnappedLocationProvider) que pode ser chamada para redefinir o serviço sem custo financeiro de navegação sempre que você parar de receber atualizações de localização em um listener registrado, quando a navegação não estiver ativa.

Estabilidade e correções de bugs

  • Atualizamos o conteúdo da caixa de diálogo dos Termos de Serviço.

Versão 1.12 (7 de outubro de 2019)

Novos recursos

  • Agora você pode ocultar e mostrar um ou todos os trajetos alternativos durante a navegação.

  • Agora é possível especificar a estratégia de roteamento nas solicitações (rota mais curta/rápida).

  • Foi adicionada a capacidade de personalizar totalmente a caixa de diálogo de Termos e Condições (tamanho do texto, cor etc.).

Estabilidade e correções de bugs

  • Foi corrigida a classe duplicada no problema de com.google.http-client

  • Atualizamos o app de demonstração para usar o novo SDK do Places e o app de demonstração foi atualizado pelo Jetified.

  • O frame rate da câmera foi melhorado na visão geral da viagem.

Versão 1.11 (28 de junho de 2019)

Melhorias no desempenho

  • A latência da rede setDestination foi melhorada.

Correções de bugs

  • Correção de uma inconsistência com o callback onArrival ao navegar em vários waypoints.

  • Correção de um problema em que a chegada podia ser acionada prematuramente para waypoints não próximos à localização atual.

  • java.lang.IllegalStateException

    • Uma chamada para NavigationView.onDestroy não pode ocorrer após uma chamada para NavigationView.onCreate.

Diversos

  • Atualizações da licença de software de código aberto.

  • Removemos as frases de destaque de HEC do trajeto para remover dados redundantes e simplificar a interface.

Versão 1.10.2 (11 de abril de 2019)

Estabilidade e correções de bugs

  • Correção de um bug que poderia fazer com que uma IllegalStateException fosse gerada durante uma transição do ciclo de vida do fragmento: onCreate() para onDestroy()

Versão 1.10 (11 de abril de 2019)

Recursos

  • Cabeçalho da caixa de diálogo Termos e Condições personalizável. É possível personalizar o texto do título da caixa de diálogo dos Termos e Condições usando showTermsAndConditionsDialog.

  • Marcador de ponto de referência: removemos os caracteres alfanuméricos dos marcadores de waypoint.

Versão 1.9 (11 de fevereiro de 2019)

Recursos

  • Cabeçalho secundário: você pode adicionar conteúdo personalizado abaixo do cabeçalho de navegação usando o recurso de controles personalizados. Consulte a posição SECONDARY_HEADER do método setCustomControl.

  • Novas dependências: adicione dependências para a Cronet e o Glide. Para saber mais, consulte Atualizar o script de build do Gradle no tópico "Configuração do projeto".

Problemas conhecidos

  • Se o app de demonstração falhar com java.lang.ClassNotFoundException: Didn't find class "com.example.navigationapidemo.SplashScreenActivity", será necessário atualizar a dependência das ferramentas de build do Gradle para a versão 3.3.1 ou mais recente. No arquivo build.gradle, verifique se o buildscript corresponde ao exemplo abaixo:
buildscript {
    repositories {
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
    }
}

Versão 1.8.1 (22 de janeiro de 2019)

Estabilidade e correções de bugs

  • As falhas no modo de táxi em determinados modos de câmera foram corrigidas.
  • Várias melhorias de estabilidade.

Versão 1.8 (21 de dezembro de 2018)

Recursos

  • Modo táxi – BETA: seu app pode usar as faixas e ruas dedicadas especificamente aos táxis para fornecer rotas e horário estimado de chegada (HEC) para veículos identificados como táxis.

    No momento, as seguintes áreas geográficas são aceitas:

    • Brasil: Rio de Janeiro
    • Inglaterra: Birmingham, Coventry, Área metropolitana de Londres, Manchester
    • Israel: Tel Aviv
    • Irlanda: Dublin
    • Rússia: Moscou
    • Escócia: Glasgow, Edimburgo
    • Espanha: Madri e Barcelona

Estabilidade e correções de bugs

  • Vazamentos de memória corrigidos
  • Tem desempenho aprimorado

Versão 1.7.3 (18 de setembro de 2018)

Correções de bugs

  • NavigationView agora pode fazer a transição de onStart diretamente para onStop. Isso não vai mais gerar um IllegalStateException

Versão 1.7.2 (16 de agosto de 2018)

Recursos

  • Agora, você pode mostrar uma lista de rotas durante a navegação para mostrar as próximas etapas de uma viagem. A lista de rotas é fornecida por DirectionsListView.
  • Agora é possível recuperar o status do tráfego usando a classe TimeAndDistance com o método getSeverity.
  • As restrições de placas de veículos agora são aceitas.

Correções de bugs

  • Foram corrigidas falhas ocasionais na caixa de diálogo dos Termos de Serviço (que aparecem como IllegalStateExceptions).
  • Foi corrigida uma NullPointerException com uma mensagem como "Attempt to write to field ... on a nulo objeto reference".
  • Os identificadores de recursos em R.txt (anteriormente todos 0x1) agora têm os valores corretos.

Versão 1.6.2 (16 de julho de 2018)

Correções de bugs

  • Correção de uma NullPointerException em AccessibilityStateUtils.getAccessibilityState()

Versão 1.6.0 (10 de maio de 2018)

Correções de bugs

  • Correção de um bug que causava frases de destaque de HEC incorretas em trechos da viagem e trajetos alternativos.
  • Correção de uma NullPointerException quando os valores de latitude e/ou longitude de um local eram null.
  • Correção de um bug que impedia o carregamento do mapa quando a caixa de diálogo de Termos de Serviço era aceita off-line.
  • Introdução de uma solução alternativa para um bug do LocationManager do Android 7.0 que resultaria em um NPE no SDK do Navigation.

Versão 1.5.0 (26 de março de 2018)

Recursos

  • Modo noturno: agora você pode definir a navegação para usar o tema do Modo noturno. Você pode ativar ou desativar o modo noturno de forma programática ou permitir que o SDK do Navigation alterne o tema automaticamente com base na hora do dia.
  • Modo de viagem de motocicleta (Beta): agora você pode definir o meio de transporte como TWO-WHEELER para ver trajetos de motocicleta e scooter. No momento, esse recurso está disponível apenas na Índia e na Indonésia.
  • Limites de velocidade:agora é possível mostrar ou ocultar programaticamente o ícone de limite de velocidade. O ícone só aparece em locais onde dados confiáveis de limites de velocidade estão disponíveis.
  • Controles personalizados de sobreposição de mapa:você pode usar esses controles para posicionar elementos da interface dinamicamente durante a navegação.
  • A chamada getNavigator() agora aceita um contexto de aplicativo para que ele possa ser chamado de um serviço.

Correções de bugs

  • Vários problemas de layout de texto na caixa de diálogo dos Termos de Serviço foram resolvidos para melhorar a exibição em idiomas da direita para a esquerda.

Versão 1.3.4 (24 de janeiro de 2018)

  • Correção do bug que fazia com que o clearDestinations não conseguisse limpar a rota anterior

Versão 1.3.3 (18 de dezembro de 2017)

  • A classe CameraArbitrator agora é segura para linhas de execução, porque ela é usada nas linhas de execução de IU e de renderização.
  • Não gere um NPE se os eventos de CompassButtonController chegarem depois que onDestroy() for chamado.
  • Adição de verificações de valores nulos para métodos públicos da NavigationApi. O SDK vai gerar o NPE mais próximo do código do desenvolvedor.

Versão 1.3.2 (30 de novembro de 2017)

  • Correção da falha que ocorre quando erros de rede ocorrem.

Versão 1.3.1 (14 de novembro de 2017)

  • As notificações de navegação guiada passo a passo foram corrigidas no Android 8.0 Oreo (nível 26 da API) e versões mais recentes.
  • Correção de um problema em que as rotas não ficavam visíveis quando solicitadas antes de criar um NavigationView ou NavigationFragment.

Versão 1.3 (7 de novembro de 2017)

  • Adição de um método onTrimMemory() a NavigationView. Esse método precisa ser chamado pela atividade que a contém.
  • Navigator.setDestinations() agora retornará um status LOCATION_UNKNOWN se uma correção de local não for encontrada dentro do tempo limite especificado. O tempo limite pode ser definido usando RoutingOptions.locationTimeoutMs().
  • Os pontos de fixação para imagens de marcadores personalizados agora podem ser definidos usando MarkerOptions.anchor().
  • NavigationMap agora expõe um objeto Projection que pode ser usado para receber os limites visíveis de latitude/longitude do mapa, considerando o preenchimento.
  • As notificações pop-up de navegação guiada agora podem ser desativadas usando Navigator.setHeadsUpNotificationEnabled().
  • O botão recentralizar agora exibe um ouvinte clicado. Isso pode ser definido usando o método setOnRecenterButtonClickedListener() em NavigationView, NavigationFragment e SupportNavigationFragment.

Versão 1.2.6 (25 de outubro de 2017)

  • Correção de uma NullPointerException que poderia acontecer se o serviço de navegação fosse recriado automaticamente pelo SO
  • O NavigationView não gera mais uma exceção quando determinados métodos do ciclo de vida são chamados em uma ordem incorreta, por exemplo, chamadas consecutivas para onStart() ou onResume() Em vez disso, uma mensagem de aviso é registrada.

Versão 1.2.5 (19 de outubro de 2017)

  • Adicionado um gerenciamento de cache de blocos melhor para manter o uso de memória sob controle.
  • Correção de uma falha que poderia acontecer se Navigator.setDestinations() fosse chamado antes de criar um NavigationView ou NavigationFragment

Versão 1.2.4 (11 de outubro de 2017)

  • Correção de um vazamento de memória que podia ocorrer ao criar várias NavigationViews sem um Navigator presente

Versão 1.2.3 (4 de outubro de 2017)

  • Correção de um bug do ciclo de vida que às vezes fazia com que o marcador "my-location" desaparecesse.
  • Correção de outro caso em que os eventos de embarque e desembarque podiam ser perdidos

Versão 1.2.2 (27 de setembro de 2017)

  • Melhorias de latência para acelerar a inicialização da API e as chamadas para Navigator.setDestinations.

Versão 1.2.1 (20 de setembro de 2017)

  • android:largeHeap="true" foi adicionado ao manifesto da biblioteca. Isso reduz a frequência de OutOfMemoryErrors e é necessário para uma experiência de navegação confiável.
  • Melhoria na confiabilidade da gravação de eventos de embarque e desembarque.

Versão 1.2 (1o de setembro de 2017)

  • Quando a orientação do dispositivo não é conhecida, o mapa aparece em um modo de visão geral centralizado, norte para cima, e mostra um marcador "my-location" circular. Isso é especialmente útil no início da jornada, para ajudar os usuários a se orientarem, transmitindo que o dispositivo ainda não tem uma ideia boa o suficiente.
  • O card de incidentes de trânsito tem um novo design e aparece na parte de baixo do mapa, em vez da posição anterior na parte de cima.
  • A detecção de local foi atualizada para garantir o funcionamento esperado no Android 8.0 Oreo (nível 26 da API).
  • Correção de um bug em que os marcadores de destino eram renderizados de forma diferente no modo de navegação e fora dele.

Versão 1.1.2 (16 de setembro de 2017)

  • Melhoria na confiabilidade da gravação de eventos de embarque e desembarque.

Versão 1.1.1 (24 de agosto de 2017)

  • Correção de uma IllegalStateException que às vezes ocorria ao redirecionar sem conexão de rede.
  • Correção de um bug em que o estilo do mapa era diferente antes e depois de chamar Navigator.setDestinations().

Versão 1.1 (31 de julho de 2017)

  • Correção de um bug em que o RoadSnappedLocationListener às vezes não funcionava quando o app era enviado para o segundo plano.
  • Correção de um bug da câmera ao iniciar/parar a orientação.
  • Correção de um bug no Simulator.unsetUserLocation() em que o local não estava sendo redefinido corretamente

Versão 1.0 (5 de julho de 2017)

  • Lançamento do SDK do Navigation.