Примечания к выпуску

В этом журнале изменений подробно описаны новые функции и исправления ошибок в каждом выпуске Navigation SDK для Android.

18 октября 2021 г. — прекращение поддержки API уровней 23, 24 и 25.

В связи с изменениями в наших внутренних зависимостях уровни API Android 23, 24 и 25 (Android 6, 7.0 и 7.1) не будут поддерживаться в новых версиях SDK навигации и драйверов для Android, начиная с третьего квартала 2022 года.

SDK навигации и драйверов для версий Android, выпущенных начиная с третьего квартала 2022 года, будут поддерживать только устройства с Android API уровня не ниже 26.

Версии приложений, созданные с использованием SDK навигации и драйверов для Android версии 4.x или более ранней, будут продолжать работать на устройствах под управлением Android API уровня 25 и ниже.

Объявление о прекращении поддержки (21 июня 2021 г.)

В этом объявлении описывается прекращение поддержки Navigation SDK для Android и Driver SDK для Android на дату, указанную выше. Это объявление также было разослано затронутым клиентам в качестве обязательного служебного объявления (MSA).

Устаревшие навигационный SDK для Android и Driver SDK для Android v1.x

Nav/Driver SDK v1 был выпущен в 2018 году, и поскольку скоро будут выпущены наши версии v3, пришло время объявить версию v1 устаревшей, чтобы избежать неустойчивости поддержки многих основных версий.

Время, сэкономленное за счет отсутствия поддержки этой дополнительной версии, позволит нам лучше поддерживать последнюю основную версию и создавать больше функций, важных для наших клиентов.

Таким образом, Nav/Driver SDK v1.x устарел и больше не будет поддерживаться после 21 июня 2022 г.

Пожалуйста, найдите время и посмотрите , как работают устаревшие версии SDK .

Дополнительные сведения об устаревшей версии Android см. в примечаниях к выпуску Navigation SDK для Android v2/v3 .

Версия 1.51.1 (1 апреля 2022 г.)

Стабильность и исправления ошибок

  • Исправлена ​​неработающая гиперссылка в диалоговом окне «Условия обслуживания».

  • Некоторые клиенты получали сообщение об ошибке в диалоговом окне «Условия обслуживания» при удалении активности Android. Теперь клиенты больше не будут сталкиваться с этой диалоговой ошибкой при уничтожении активности.

Версия 1.51 (18 января 2022 г.)

Изменения API

  • Минимальный уровень Android API для навигационного SDK повышается до 23, а целевой уровень API — до 30. Эта целевая версия соответствует требованиям Google Play .

  • Отображает полилинию, которая следует за навигационным шевроном, серым цветом, чтобы указать, что пользователь уже проехал этот участок маршрута.

Версия 1.50 (03 ноября 2021 г.)

  • Джетифицированный вариант версии 1.22. Никаких изменений, кроме использования библиотек AndroidX, не произошло.

Версия 1.22 (07 октября 2021 г.)

Стабильность и исправления ошибок

  • Исправлена ​​ошибка камеры, из-за которой камера переставала отслеживать местоположение пользователя после вызова stopNavigation.
  • Исправлена ​​ошибка камеры, из-за которой кнопка повторного центрирования появлялась после возврата приложения в фоновый режим.
  • Устраняет потенциальную проблему утечки памяти.
  • Исправлена ​​ошибка, приводившая к проблемам ANR.
  • Предотвращает сбой, вызванный диалоговым окном условий обслуживания.

Устаревания

  • Устаревший #setDestinations с токеном маршрута в пользу нового API, использующего CustomRoutesOptions.

Новые возможности

  • Добавлена ​​вспомогательная функция выбора, которая добавляет новый значок в пользовательский интерфейс нижнего колонтитула навигации.
  • Добавляет поддержку двухколесных транспортных средств для пользовательских маршрутов.

Версия 1.21.1 (13 июля 2021 г.)

Стабильность и исправления ошибок

  • Исправляет исключение IllegalStateException связанное с чрезмерно ограничительной проверкой предварительных условий в коде реализации.
  • Исправляет исключение NullPointerException в NavigationView.onDestroy() .

Версия 1.21 (23 июня 2021 г.)

Изменения API

  • Слушатели, ускоряющие скорость, теперь поддерживаются в безголовой навигации. Это позволяет отслеживать превышение скорости без предварительного рендеринга View или Fragment из навигационного SDK.

Стабильность и исправления ошибок

  • Повышена надежность загрузки фрагментов карты в ночном режиме при первой установке приложений.

Устаревания

Следующие методы устарели в пользу Navigator.setSpeedAlertOptions() :

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

Версия 1.20.1 (14 июля 2021 г.)

Стабильность и исправления ошибок

  • Исправляет исключение IllegalStateException связанное с чрезмерно ограничительной проверкой предварительных условий в коде реализации.
  • Исправляет исключение NullPointerException в NavigationView.onDestroy() .

Версия 1.20 (9 марта 2021 г.)

  • Добавлена ​​новая обязательная зависимость. Добавьте следующие зависимости в списки зависимостей Gradle, чтобы избежать сбоев во время выполнения: api 'joda-time:joda-time:2.9.9' .

Стабильность и исправления ошибок

  • Исправлена ​​проблема, из-за которой пользователи навигационного SDK, использующие Joda-Time, сталкивались с конфликтами с запутанной версией jodatime, которая была упакована в нашу библиотеку.
  • Исправлена ​​проблема, из-за которой навигационный SDK случайно скрывал уведомления потребительских приложений, которыми он не владеет, при запуске сеанса навигации.

Версия 1.19 (15 декабря 2020 г.)

Изменения API

  • DriverSDK теперь всегда отправляет данные о трафике в FleetEngine. Ранее такое поведение определялось флагом UpdateVehicleResponse ; этот флаг теперь игнорируется.

  • Изменился конструктор FleetEngine; были добавлены обертки для AuthTokenFactory и StatusListener .

  • В API Navigator добавлены два новых метода, позволяющие настраивать и удалять прослушиватели для новых сеансов навигации.

  • В API Navigator добавлен новый метод для получения идентификаторов транзакций для текущего сеанса навигации. Этот API следует использовать при запуске нового сеанса навигации и при изменении идентификаторов транзакций в текущем сеансе навигации (например, при обновлении списка сегментов путешествия).

Версия 1.18 (9 октября 2020 г.)

  • Добавлен метод setAbnormalTerminationReportingEnabled(boolean) . Этот метод позволяет пользователям отключить мониторинг обнаружения сбоев.

  • Исправлена ​​ошибка, из-за которой невозможно было отменить регистрацию LocationListeners в событии onLocationChange .

  • Исправлен сбой gRPC, из-за которого не удавалось создать экземпляр io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider .

Версия 1.17 (27 августа 2020 г.)

  • Теперь вы можете передать токен маршрута в NavSDK, чтобы получить маршрут, представленный этим токеном маршрута. Токен маршрута связан с ответом маршрута при вызове API-интерфейса Routes Preferred. Новый API — Navigator#setDestination(List<Waypoint> destinations, String routeToken) .

  • Добавлено несколько новых обязательных зависимостей. Добавьте следующие зависимости в списки зависимостей Gradle, чтобы избежать сбоев во время выполнения:

    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- время выполнения: 2.2.0'

Версия 1.16 (10 августа 2020 г.)

Новые возможности

  • Добавлен API Waypoint.Builder.setVehicleStopover , который включает/отключает автоматическое перемещение остановок на маршруте, когда путевые точки установлены в месте, где невозможно остановиться.

  • В обратный вызов SpeedAlert добавлен параметр SpeedAlertSeverity . Используйте этот параметр с SpeedingListener .

Стабильность и исправления ошибок

  • Устаревший метод NavigationApi.cleanUp из-за нежелательных побочных эффектов, таких как NullPointerExceptions приводящих к сбоям.

  • Устарели Waypoint.fromLatLng() и Waypoint.fromPlaceId() в пользу Waypoint.builder() .

  • Устаревший класс AddressListener , содержащийся в NavigationTransactionRecorder , поскольку он не используется.

Версия 1.15 (23 марта 2020 г.)

Новые возможности

  • Настраиваемые шрифты/цвета/значки для заголовка навигации.

  • Поддержка настройки цвета рекомендуемых полос в пользовательском интерфейсе заголовка навигации.

  • Обновляет несколько API, чтобы они соответствовали шаблону добавления и удаления для настройки обратных вызовов/прослушивателей. Предыдущие методы set* были помечены как устаревшие и будут удалены в будущем выпуске. Устаревшие методы перечислены здесь:

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

Стабильность и исправления ошибок

  • Увеличьте minSdkVersion для navsdk до 19.

  • Исправлена ​​ошибка, из-за которой имена маршрутных точек широты и долготы не учитывались в случае сбоя обратного геокодирования на стороне сервера.

Версия 1.14 (2 февраля 2020 г.)

Новые возможности

  • (Бета) Оператор может влиять на то, по какому из вариантов маршрута следует водитель, задав целевое расстояние для маршрута в запросе направлений. Эта функция находится в стадии бета-тестирования. Если вы заинтересованы, обратитесь к представителю службы поддержки клиентов, чтобы узнать больше.

  • Скомпилируйте SDK, обновленный до API 29.

Стабильность и исправления ошибок

  • Исправлена ​​ошибка в диалоговом окне «Условия обслуживания», из-за которой запрос «Принять» не был обязательным для водителей.

  • Изменено поведение обработки исключений в компонентах NDK, чтобы избежать сбоев.

Версия 1.13 (8 ноября 2019 г.)

Новые возможности

  • Теперь водители могут получать оповещения о превышении скорости. Вы можете настроить внешний вид значков предупреждений о скорости. Как подробно описано в условиях обслуживания Google Maps Enterprise, Google не дает никаких гарантий относительно качества какой-либо функции, включая точность функции оповещения о скорости. Оповещения о скорости предназначены только для информационных целей.

  • Добавлен новый параметр маршрутизации ( RoutingOptions ), который позволяет отображать альтернативные маршруты во время предварительного просмотра маршрута.

  • Добавлена ​​новая перспектива камеры, показывающая вид маршрута сверху вниз, при этом маршрут ориентирован так, что транспортное средство всегда смотрит вперед. Вы можете настроить эту перспективу, вызвав NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP) .

  • Добавлен новый API ( resetFreeNav() в RoadSnappedLocationProvider ), который вы можете вызвать для сброса службы Free Nav всякий раз, когда вы перестаете получать обновления местоположения для зарегистрированного прослушивателя, когда навигация не активна.

Стабильность и исправления ошибок

  • Обновлено содержимое диалога «Условия обслуживания».

Версия 1.12 (7 октября 2019 г.)

Новые возможности

  • Теперь вы можете скрыть и показать один или все альтернативные маршруты во время навигации.

  • Теперь вы можете указать стратегию маршрутизации в запросах (более короткий/самый быстрый маршрут).

  • Добавлена ​​возможность полной настройки диалога «Правила и условия» (размер текста, цвет и т. д.).

Стабильность и исправления ошибок

  • Исправлен дублирующийся класс в проблеме com.google.http-client .

  • Обновлено демо-приложение для использования нового пакета Places SDK и добавлено Jetified демо-приложение.

  • Улучшена частота кадров камеры при обзоре поездки.

Версия 1.11 (28 июня 2019 г.)

Улучшения производительности

  • Задержка в сети setDestination была улучшена.

Исправление ошибок

  • Исправлено несоответствие обратного вызова onArrival при навигации по нескольким путевым точкам.

  • Исправлена ​​ошибка, из-за которой прибытие могло преждевременно сработать для путевых точек, находящихся не рядом с текущим местоположением.

  • java.lang.IllegalStateException

    • Вызов NavigationView.onDestroy не может следовать за вызовом NavigationView.onCreate .

Разнообразный

  • Обновления лицензий на программное обеспечение с открытым исходным кодом.

  • Удалены выноски ETA на маршруте — для удаления избыточных данных и упрощения пользовательского интерфейса.

Версия 1.10.2 (11 апреля 2019 г.)

Стабильность и исправления ошибок

  • Исправлена ​​ошибка, из-за которой могло возникнуть исключение IllegalStateException во время перехода жизненного цикла фрагмента: onCreate() в onDestroy().

Версия 1.10 (11 апреля 2019 г.)

Функции

  • Настраиваемый заголовок диалогового окна «Условия и положения» Вы можете настроить текст заголовка диалогового окна «Условия и положения» с помощью showTermsAndConditionsDialog .

  • Маркер путевой точки Из маркеров путевой точки удалены буквенно-цифровые символы.

Версия 1.9 (11 февраля 2019 г.)

Функции

  • Вторичный заголовок Вы можете добавить собственный контент под заголовок навигации, используя функцию настраиваемых элементов управления. См. позицию SECONDARY_HEADER для метода setCustomControl .

  • Новые зависимости Добавьте зависимости для Cronet и Glide. Дополнительные сведения см. в разделе «Обновление сценария сборки Gradle» в разделе «Конфигурация проекта».

Известные вопросы

  • Если демонстрационное приложение аварийно завершает работу с java.lang.ClassNotFoundException: Not find class "com.example.navigationapidemo.SplashScreenActivity" , вам необходимо обновить зависимость для инструментов Gradle Build до версии 3.3.1 или выше. В файле build.gradle убедитесь, что buildscript соответствует приведенному ниже примеру:
buildscript {
    repositories {
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
    }
}

Версия 1.8.1 (22 января 2019 г.)

Стабильность и исправления ошибок

  • Исправлены сбои в режиме такси при определенных режимах камеры.
  • Различные улучшения стабильности.

Версия 1.8 (21 декабря 2018 г.)

Функции

  • Режим такси — БЕТА . Ваше приложение может использовать полосы и улицы, специально предназначенные для такси, для определения маршрута и расчетного времени прибытия (ETA) для транспортных средств, идентифицированных как такси.

    В настоящее время поддерживаются следующие географические регионы:

    • Бразилия: Рио-де-Жанейро
    • Англия: Бирмингем, Ковентри, район лондонского метро, ​​Манчестер.
    • Израиль: Тель-Авив
    • Ирландия: Дублин
    • Россия: Москва
    • Шотландия: Глазго, Эдинбург
    • Испания: Мадрид, Барселона

Стабильность и исправления ошибок

  • Исправлены утечки памяти
  • Улучшенная производительность

Версия 1.7.3 (18 сентября 2018 г.)

Исправление ошибок

  • NavigationView теперь может переходить из onStart непосредственно в onStop , это больше не будет генерировать IllegalStateException .

Версия 1.7.2 (16 августа 2018 г.)

Функции

  • Теперь вы можете отображать список направлений во время навигации, чтобы отображать предстоящие повороты для поездки. Список направлений предоставляется через DirectionsListView .
  • Теперь вы можете получить статус трафика, используя класс TimeAndDistance с помощью метода getSeverity .
  • Теперь поддерживаются ограничения по номерным знакам транспортных средств.

Исправление ошибок

  • Исправлены периодические сбои в диалоговом окне «Условия обслуживания» (проявляющиеся как IllegalStateException ).
  • Исправлено исключение NullPointerException с сообщением типа «попытка записи в поле... по нулевой ссылке на объект».
  • Идентификаторы ресурсов в R.txt (ранее все 0x1) теперь имеют правильные значения.

Версия 1.6.2 (16 июля 2018 г.)

Исправление ошибок

  • Исправлено исключение NullPointerException в AccessibilityStateUtils.getAccessibilityState() .

Версия 1.6.0 (10 мая 2018 г.)

Исправление ошибок

  • Исправлена ​​ошибка, из-за которой на участках пути и альтернативных маршрутах указывалось неправильное время прибытия.
  • Исправлено исключение NullPointerException, когда значения широты и/или долготы для местоположения были null .
  • Исправлена ​​ошибка, из-за которой карта не загружалась, если диалог ToS был принят в автономном режиме.
  • Представлен обходной путь для ошибки LocationManager в ОС Android 7.0, которая приводила к появлению NPE в Navigation SDK.

Версия 1.5.0 (26 марта 2018 г.)

Функции

  • Ночной режим : теперь вы можете настроить навигацию на использование темы ночного режима. Вы можете программно включить или отключить ночной режим или позволить Navigation SDK автоматически переключать тему в зависимости от времени суток.
  • Режим движения на двухколесном автомобиле (бета-версия): теперь вы можете установить режим движения на TWO-WHEELER чтобы прокладывать маршруты на мотоциклах и скутерах. В настоящее время эта функция доступна только в Индии и Индонезии.
  • Ограничения скорости: теперь вы можете программно отображать или скрывать значок ограничения скорости (значок появляется только в тех местах, где доступны надежные данные об ограничении скорости).
  • Пользовательские элементы управления наложением карты. Вы можете использовать пользовательские элементы управления наложением карты для динамического позиционирования элементов пользовательского интерфейса во время навигации.
  • Вызов getNavigator() теперь принимает контекст приложения, чтобы его можно было вызвать из службы.

Исправление ошибок

  • Были устранены некоторые проблемы с макетом текста в диалоговом окне «Условия обслуживания», чтобы улучшить отображение для языков с письмом справа налево.

Версия 1.3.4 (24 января 2018 г.)

  • Исправлена ​​ошибка, из-за которой clearDestinations иногда не могла очистить предыдущий маршрут.

Версия 1.3.3 (18 декабря 2017 г.)

  • Класс CameraArbitrator стал потокобезопасным, поскольку он используется как в потоках пользовательского интерфейса, так и в потоках рендеринга;
  • Не выдавайте NPE, если события для CompassButtonController поступают после вызова onDestroy() ;
  • Добавьте проверки на null для общедоступных методов NavigationApi. SDK подкинет NPE, наиболее близкий к коду разработчика.

Версия 1.3.2 (30 ноября 2017 г.)

  • Исправлен сбой при возникновении сетевых ошибок.

Версия 1.3.1 (14 ноября 2017 г.)

  • Исправлены всплывающие уведомления о пошаговой навигации на Android 8.0 Oreo (уровень API 26) и более поздних версиях.
  • Исправлена ​​проблема, из-за которой направления не были видны, если они были запрошены перед созданием NavigationView или NavigationFragment .

Версия 1.3 (7 ноября 2017 г.)

  • В NavigationView добавлен метод onTrimMemory() . Этот метод должен вызываться содержащей активностью.
  • Navigator.setDestinations() теперь будет возвращать статус LOCATION_UNKNOWN , если исправление местоположения не удалось найти в течение указанного времени ожидания. Тайм-аут можно установить с помощью RoutingOptions.locationTimeoutMs() .
  • Точки привязки для пользовательских изображений маркеров теперь можно устанавливать с помощью MarkerOptions.anchor() .
  • NavigationMap теперь предоставляет объект Projection , который можно использовать для получения видимых границ карты по широте и долготе с учетом отступов.
  • Всплывающие уведомления о пошаговой навигации теперь можно отключить с помощью Navigator.setHeadsUpNotificationEnabled() .
  • Кнопка повторного центрирования теперь предлагает прослушиватель по нажатию. Это можно установить с помощью метода setOnRecenterButtonClickedListener() в NavigationView , NavigationFragment и SupportNavigationFragment .

Версия 1.2.6 (25 октября 2017 г.)

  • Исправлено исключение NullPointerException, которое могло произойти, если служба навигации автоматически воссоздавалась операционной системой.
  • NavigationView больше не генерирует исключение, если определенные методы жизненного цикла вызываются в неправильном порядке, например последовательные вызовы onStart() или onResume() . Вместо этого регистрируется предупреждающее сообщение.

Версия 1.2.5 (19 октября 2017 г.)

  • Добавлено улучшенное управление полистным кэшем, чтобы держать под контролем использование памяти.
  • Исправлен сбой, который мог произойти, если Navigator.setDestinations() был вызван перед созданием NavigationView или NavigationFragment .

Версия 1.2.4 (11 октября 2017 г.)

  • Исправлена ​​утечка памяти, которая могла возникнуть при создании нескольких элементов навигации без присутствия навигатора.

Версия 1.2.3 (4 октября 2017 г.)

  • Исправлена ​​ошибка жизненного цикла, из-за которой иногда исчезал маркер моего местоположения.
  • Исправлен еще один случай, когда события погрузки и высадки могли потеряться.

Версия 1.2.2 (27 сентября 2017 г.)

  • Улучшение задержки для ускорения инициализации API и вызовов Navigator.setDestinations .

Версия 1.2.1 (20 сентября 2017 г.)

  • В манифест библиотеки добавлен android:largeHeap="true" . Это снижает частоту ошибок OutOfMemoryErrors и необходимо для надежной навигации.
  • Повышена надежность записи событий погрузки и высадки.

Версия 1.2 (1 сентября 2017 г.)

  • Если ориентация устройства неизвестна, карта теперь отображается в режиме обзора по центру севера вверх и отображает круглый маркер моего местоположения. Это особенно полезно в начале пути, чтобы помочь пользователям сориентироваться, сообщая, что устройство еще недостаточно хорошо представляет, в какую сторону оно смотрит.
  • Карточка дорожно-транспортного происшествия имеет новый дизайн и отображается внизу карты вместо прежнего положения вверху.
  • Обновлено прослушивание местоположения, чтобы оно работало должным образом в Android 8.0 Oreo (уровень API 26).
  • Исправлена ​​ошибка, из-за которой маркеры пункта назначения отображались по-разному в режиме навигации и в режиме без навигации.

Версия 1.1.2 (16 сентября 2017 г.)

  • Повышена надежность записи событий погрузки и высадки.

Версия 1.1.1 (24 августа 2017 г.)

  • Исправлено исключение IllegalStateException, которое иногда возникало при перенаправлении без сетевого подключения.
  • Исправлена ​​ошибка, из-за которой стиль карты различался до и после вызова Navigator.setDestinations() .

Версия 1.1 (31 июля 2017 г.)

  • Исправлена ​​ошибка, из-за которой RoadSnappedLocationListener иногда не работал, когда приложение переводилось в фоновый режим.
  • Исправлена ​​ошибка камеры при запуске/остановке наведения.
  • Исправлена ​​ошибка в Simulator.unsetUserLocation() , из-за которой местоположение не сбрасывалось должным образом.

Версия 1.0 (5 июля 2017 г.)

  • Запуск навигационного SDK.