Потребительский SDK для Android: примечания к выпуску

В этом разделе содержатся примечания к выпуску Consumer SDK для Android.

2.3.0 (2 августа 2024 г.)

Изменения API

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

  • Добавьте метод getServerTimeMillis() в VehicleLocation , чтобы определить время получения обновления местоположения Fleet Engine.

2.2.0 (7 мая 2024 г.)

Изменения API

  • Добавлен API поддержки для интеграции Jetpack Compose. Это экспериментальная функция. Для получения подробной информации об интеграции с Jetpack Compose обратитесь к своему представителю.

2.1.0 (17 января 2024 г.)

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

  • Устраняет сбой, возникающий, когда SDK инициализируется более одного раза в течение жизненного цикла приложения.

Изменения API

  • Представляет метод для получения экземпляра GoogleMap , созданного SDK ( ConsumerGoogleMap.getGoogleMap() ).
  • Представляет API для получения экземпляров Marker , созданных SDK для представления транспортного средства ( ConsumerController.getConsumerMarker() ).
  • Представляет API для получения клиентских прогнозируемых обновлений времени и расстояния во время совместного использования путешествий ( ProjectedRouteEta ).

1.99.2 (3 ноября 2023 г.)

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

  • Устраняет сбой, возникающий при выполнении анимации камеры, когда для заполнения недостаточно вертикального или горизонтального пространства. Это происходит только в последней версии рендерера карт.

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

Проблемы

  • ConsumerApi.initialize() выдает исключение, если он вызывается, когда экземпляр API уже существует. Чтобы обойти эту проблему, сначала вызовите ConsumerApi.getInstance() и оцените возвращенную Task , чтобы определить, существует ли уже экземпляр API.

2.0.0 (15 сентября 2023 г.)

Объявление: критические изменения

  • Минимальные требования к уровню API изменены с 21 на 23.

  • Обновлены требования к версии Maps SDK с версии 17.0.0 до версии 18.1.0.

  • Минимальные требования к версии стандартной библиотеки Kotlin обновлены с версии 1.6.10 до версии 1.9.0.

  • Обновите версии зависимостей сервисов Google Play.

    • Минимальные требования к версии базовой библиотеки play-services обновлены с версии 18.0.1 до версии 18.2.0.

    • Минимальные требования к версии библиотеки play-services-base обновлены с версии 18.0.0 до версии 18.2.0.

    • Минимальные требования к версии библиотеки play-services-location обновлены с версии 17.0.0 до версии 21.0.1.

    • Минимальные требования к версии библиотеки play-services-tasks обновлены с версии 18.0.1 до версии 18.0.2.

  • Добавляет библиотеку androidx.room:room-runtime с минимальным требованием к версии v2.5.2.

  • Обновите следующие версии зависимостей

    • Минимальные требования к версии библиотеки android-maps-utils обновлены с версии 0.4.2 до версии 3.5.2.

    • Минимальные требования к версии com.google.android.datatransport:transport-backend-cct обновлены с версии 3.0.0 до версии 3.1.9.

    • Минимальные требования к версии com.google.android.datatransport:transport-runtime обновлены с версии 3.0.1 до версии 3.1.9.

    • Минимальные требования к версии androidx.lifecycle:lifecycle-extensions обновлены с версии 2.0.0 до версии 2.2.0.

    • Минимальные требования к версии androidx.lifecycle:lifecycle-common-java8 обновлены с версии 2.0.0 до версии 2.6.1.

    • Минимальные требования к версии androidx.appcompat:appcompat обновлены с v1.0.0 до v1.6.1.

    • Минимальные требования к версии androidx.fragment:fragment обновлены с v1.0.0 до v1.6.1.

  • Удаляет следующие ранее устаревшие API: ConsumerTrip , ConsumerTripCallback , ConsumerTripManager , ConsumerTripOptions . На смену им пришли TripModel , TripModelCallback , TripModelManager и TripModelOptions .

  • Приложения, использующие Consumer SDK, теперь должны иметь targetSdkVersion API 31 или более поздней версии, compileSdkVersion API 33 или более поздней версии.

  • Приложения, использующие Consumer SDK, теперь должны включать поддержку библиотеки Java 8. См. https://developer.android.com/studio/write/java8-support для получения инструкций по обновлению.

  • Приложения, использующие Proguard или Dexguard, должны перейти на R8. См. https://developer.android.com/build/shrink-code для получения дополнительной информации.

  • Приложения, использующие Consumer SDK, должны включать обессеривание. Инструкции см. на https://developer.android.com/studio/write/java8-support#library-desugaring.

  • Метод ConsumerApi.initialize() теперь генерирует исключение, если он вызывается, когда уже создан экземпляр API. Task , возвращаемая ConsumerApi.getInstance() должна использоваться для определения того, существует ли заранее созданный экземпляр API.

Объявление: прекращение поддержки API

  • Устаревшие классы аннотаций Trip.TripStatus и Trip.TripType , вместо них добавляются классы аннотаций TripInfo.TripStatus и TripInfo.TripType .

    • В рамках этого изменения TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) устарел, а вместо него добавлен TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) .

    • В рамках этого изменения TripInfo#getTripStatus() устарел, вместо него добавлен TripInfo#getCurrentTripStatus() .

    • В рамках этого изменения TripInfo#getTripType() устарел, вместо него добавлен TripInfo#getCurrentTripType() .

  • Устаревший класс Trip .

Другие изменения и исправления ошибок

  • Поддерживает запрос последней версии средства визуализации Maps SDK. Подробности см. в разделе «Новый рендерер карт» .

  • Обеспечивает поддержку диапазона Maps SDK версий от v18.1.0 (включительно) до v19.0.0 (эксклюзивно).

  • Исправляет ошибку «превышен срок» для внутренней связи между SDK и серверной частью Google.

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

Руководство по миграции

1.99.1 (31 августа 2023 г.)

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

  • Устраняет сбой, возникающий при уничтожении активности или фрагмента хоста SDK.

  • Устраняет сбой, возникающий, когда размеры MapView равны 0 (высота или ширина).

  • Исправлен сбой, возникающий при проецировании местоположения автомобиля на полилинию маршрута.

Улучшения

  • Предотвращает сбой SDK, когда ведущее приложение загружено неопубликовано, а визуальные ресурсы по умолчанию отсутствуют.

1.99.0 (22 июня 2023 г.)

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

  • Устранена проблема с рендерингом на экранах небольшого размера и в режиме «картинка в картинке».

  • Устраняет мерцание автомобиля во время совместного путешествия.

1.2.1 (7 июня 2023 г.)

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

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

1.2.0 (21 ноября 2022 г.)

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

  • Исправлена ​​ошибка, из-за которой в обратном вызове onTripActiveRouteTrafficUpdated сообщался пустой трафик.

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

  • «Полилинии с учетом трафика» теперь общедоступны.

1.1.2 (27 октября 2022 г.)

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

  • Устранена ошибка, приводившая к исчезновению полилинии маршрута после запуска JourneySharingSession более одного раза для TripModel .

Объявление: прекращение поддержки Android 5 (25 июля 2022 г.)

Для нашей версии SDK v1.1.1 мы предоставляем дополнительный год поддержки приложений, работающих на Android 5, для уровней API 21 и 22.

Что это значит:

  • Потребительский SDK, работающий в ваших приложениях Android, будет поддерживать как минимум Android 5 (уровень API 21) до 30 июня 2023 года.

  • После 30 июня 2023 г. мы будем поддерживать только Android API уровня 23 и выше. Другими словами, после этой даты мы прекратим поддержку Android API уровней 21 и 22 во всех версиях SDK. Это означает, что ошибки, связанные с Android 21 или 22, в любой версии SDK (включая 4.x) не будут исправлены, и мы не гарантируем корректную работу SDK.

v1.1.1 (25 июля 2022 г.)

Изменение зависимости

  • Понижает минимальный поддерживаемый уровень Android API до 21.

v1.1.0 (28 апреля 2022 г.)

  • Внутренние улучшения.

v1.0.19 (17 марта 2022 г.)

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

  • Исправлена ​​утечка памяти в классе ConsumerApi .

v1.0.14 (30 ноября 2021 г.)

Минимальный поддерживаемый уровень Android API теперь равен 23.

Изменения API

  • Изменения в классах ConsumerTrip и ConsumerTripManager .

    • Исправлены имена некоторых методов, чтобы сделать их значение более понятным и привести в соответствие с платформой iOS.
  • Изменения в ConsumerTripCallback , ConsumerTrip и TripInfo .

    • Изменены имена некоторых классов, чтобы обеспечить равенство с iOS. Введены TripModel , TirpModelManager и TripModelOptions , чтобы объявить устаревшими ConsumerTrip , ConsumerTripManager и ConsumerTripOptions .

    • Подчищены имена некоторых методов. Пересмотрены или добавлены комментарии JavaDoc к методам для более четкой передачи смысла.

    • Улучшена обработка ошибок.

Настройка стиля

  • Устаревшие устаревшие оболочки

    • MarkerStyleOptions и PolylineStyleOptions устарели и заменены MarkerOptions и PolylineOptions , которые используются совместно с Maps SDK.

Мониторинг сбоев

  • Добавлено обнаружение и журналирование сбоев.

    • Было сделано дополнение, позволяющее отказаться от этой функции. Это было сделано в рамках более масштабных усилий по мониторингу сбоев в масштабах всего региона.

Изменения аутентификации

  • Удалите ненужные методы из интерфейсов аутентификации.
    • Удален параметр ServiceType .

v0.9.28 (18 мая 2021 г.)

Изменения API

  • Обновлены все методы ConsumerTripCallback для использования TripInfo в качестве параметра.
  • Добавлен ConsumerTrip.isRefreshing() , который указывает, активно ли ConsumerTrip обновляет себя свежей информацией о поездке из Fleet Engine.
  • Добавлен ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() .
  • Добавлен ConsumerTripCallback.onTripRemainingRouteUpdated() .
  • Замените типы возвращаемых данных Guava ( ImmutableSet , ImmutableList ) эквивалентными классами java.util .
  • Изменения имени пакета:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

Изменения реализации

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

v0.9.15 (7 октября 2020 г.)

Изменения API

  • В этом выпуске представлены полилинии с учетом трафика . - Добавлены TripInfo.getActiveRouteTraffic() и TripInfo.getRemainingRouteTraffic() .
    • Добавлены ConsumerTripCallback.onTripActiveRouteTrafficUpdated() и ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() чтобы указать, когда изменился трафик.
    • Добавлены PolylineStyleOptions для настройки трафика ( setTrafficEnabled() , setTrafficColorNoData() , setTrafficColorNormal() , setTrafficColorSlow() , setTrafficColorTrafficJam() ).
    • Открытый PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION .
    • Добавлен TripWaypoint.getTrafficData() .
    • Добавлен тип данных TrafficData .
    • Добавлен ConsumerController.hideAllSessions() . ConsumerController.showSession() больше не принимает значение null в качестве аргумента.

v0.9.9 (15 июля 2020 г.)

Изменения API

  • Это серьезное изменение, которое представляет модульную архитектуру с более четкой взаимосвязью между уровнем только данных (например, ConsumerTripManager ) и уровнем пользовательского интерфейса (например, JourneySharingSession ). Информацию о переходе на новую архитектуру см. в Руководстве по миграции на модульность . — Объект ConsumerTrip теперь получается из ConsumerTripManager.getTrip() .
    • ConsumerTrip.unregisterCallback был переименован в ConsumerTrip.unregisterTripCallback .
    • ConsumerTrip.isCallbackRegistered переименован в ConsumerTrip.isTripCallbackRegistered .
    • Добавлены ConsumerTrip.setConsumerTripOptions() и ConsumerTrip.getConsumerTripOptions() .
    • Удален ConsumerTrip.setAutoRefreshInterval() .
  • Удалены API, не связанные с обменом данными о поездках.
    • Удалена карта плотности транспорта.
    • Убрано состояние предварительного просмотра поездки.
    • Убрано состояние выбора пикапа.
    • Убрано состояние выбора выпадающего списка.
    • Удалены следующие типы маркеров: SELECTED_PICKUP_POINT , SUGGESTED_PICKUP_POINT , HIGHLIGHTED_PICKUP_POINT и SELECTED_DROPOFF_POINT .
  • OnConsumerMarkerClickCallback и ConsumerMapReadyCallback изменены с интерфейсов на абстрактные классы.
  • Добавлены ConsumerController.getCameraUpdate() , ConsumerController.isAutoCameraEnabled() и ConsumerController.enableAutoCamera() .
  • Удалены пользовательский FAB и связанные с ним методы ( ConsumerController.isMyLocationFabEnabled и ConsumerController.setMyLocationFabEnabled ).

Изменения реализации

  • ConsumerTripCallback , независимо от того, зарегистрирован ли он с LifecycleOwner или без него, больше не отменяет автоматическую регистрацию в TripStatus.COMPLETE или TripStatus.CANCELED .
  • AutoCamera теперь включена по умолчанию и никогда не включается и не отключается автоматически. Ранее AutoCamera автоматически повторно включалась в TripStatus.ARRIVED_AT_PICKUP и отключалась, когда пользователь взаимодействовал с картой во время совместного использования поездки.
  • Следующие улучшения были внесены в анимацию транспортных средств для совместного использования:
    • Анимация совместного путешествия теперь учитывает ситуацию, когда транспортное средство может законно вернуться по уже пройденному маршруту.
    • Транспортное средство теперь будет анимироваться по прямой линии вместо интерполяции маршрута между точками, когда алгоритмически это будет определено как подходящее.
  • Разрешения FINE_LOCATION больше не требуются.

Другие изменения

  • Обновлены следующие версии зависимостей:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

v0.9.1 (23 марта 2020 г.)

Изменения API

  • Добавлены TripInfo.getVehicleId() , TripInfo.getNumberOfPassengers() , TripInfo.getIntermediateDestinationIndex() , TripInfo.getTripActiveRoute() и TripInfo.getTripRemainingRoute() .
  • Добавлен класс options , используемый во время инициализации ConsumerApi , который позволяет динамически устанавливать адрес FleetEngine . Если API не вызывается со значением FleetEngine , он пытается получить его из манифеста Android или возвращается к значению по умолчанию.

Улучшения

  • Полилиния маршрута не отображается, если статус поездки — ARRIVED_AT_PICKUP .
  • Улучшено отслеживание транспортных средств вне маршрута (требуется DriverSDK 1.15):
    • Отслеживание транспортных средств не привязывает транспортное средство к маршруту, когда транспортное средство проезжает мимо точки посадки.
    • Отслеживание транспортных средств позволяет отображать транспортное средство вне дороги; например, на не нанесенных на карту парковках.
  • Значок транспортного средства теперь обновляется, когда пункт назначения водителя не совпадает с пунктом назначения в Fleet Engine.

v0.8.6 (16 декабря 2019 г.)

Изменения API

  • Добавлен TripInfo.getVehicleLocation() .

  • ConsumerMapView больше не является окончательным.

Изменения реализации

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

Другие изменения

  • Требуются новые зависимости. Подробности смотрите в файле .pom.

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • Добавлены журналы задержки запроса на поездку.

  • Добавлены журналы ошибок реагирования на поездки.

Примечания

  • Начиная с версии 0.8.1 Consumer SDK для Android поставляется в виде сжатого zip-архива. Информацию о том, как его отменить, см. в разделе Jetifier: обратный режим .

v0.8.1 (13 сентября 2019 г.)

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

Изменения API

  • Добавлен ConsumerController.disableAutoCamera() как функция, противоположная centerMapForState() .

  • VehicleLocation.getUpdateTime() теперь возвращает значение Long, которое представляет метку времени (в миллисекундах).

  • Упрощен интерфейс AuthTokenFactory , чтобы предоставить единый метод для генерации токенов. AuthTokenFactory изменен с интерфейса на абстрактный класс, чтобы обеспечить обратную совместимость с Java7. Это изменение обратно совместимо, но старые методы генерации токенов одной службы устарели и в конечном итоге будут удалены.

Изменения реализации

  • Ресурсы теперь центрируются по центру значков, устраняя смещение теней.

  • setState в JOURNEY_SHARING onStartTripMonitoring() вместо ожидания статуса отслеживаемой поездки.

  • Всегда возвращает данные для первого обновления данных о поездке, даже если данные о поездке не синхронизированы.

  • В качестве зависимости добавлены Android Map Utils.

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

  • Исправлен некорректный синтаксис экспорта proguard для grpc Keep.

v0.7.0 (7 августа 2019 г.)

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

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

Изменения API

  • Новые методы для ConsumerTripCallback .

    • onTripIntermediateDestinationsUpdated() .
    • onTripETAToNextTripWaypointUpdated() .
  • Новые методы ConsumerController .

    • getIntermediateDestinations() .
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations) .
  • Новые TripStatuses .

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION .
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION .
  • Новые геттеры TripWaypoint .

    • getETAMillis() .
    • getDistanceMeters() .
  • Добавлен класс TripInfo .

    • Вы можете получить TripInfo для активной поездки с помощью ConsumerTripManager.getActiveTripInfo() .
  • Добавлен WaypointType.INTERMEDIATE_DESTINATION .

  • Добавлен MarkerType.TRIP_INTERMEDIATE_DESTINATION .

  • Создан ConsumerMapState.JOURNEY_SHARING из объединенных ConsumerMapStates ENROUTE_TO_PICKUP , ARRIVED_AT_PICKUP , ENROUTE_TO_DROPOFF и COMPLETE .

    • StateChangeCallbacks обновлены.

    • Добавлен onStateJourneySharing() .

    • Удалены onStateWaitingForPickup() , onStateDriverArrived() , onStateEnroute() и onStateEndofTrip() .

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

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

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

  • Масштаб камеры теперь включает только активный маршрут и следующую путевую точку поездки (путевую точку, принадлежащую поездке). Даже если оставшаяся нога видна, зум никогда не включит ее. Раньше точка высадки включалась в масштабирование, когда транспортное средство либо направлялось к месту выдачи, либо прибывало к месту выдачи. Это уже не так.

Улучшения

  • Заполните нулевую оставшуюся путевую точку данными водителя (оставшийся список путевых точек возвращается из ConsumerTripCallback.onTripRemainingWaypointsUpdated и TripInfo.getRemainingWaypoints() .

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

  • Принудительно повторно включите автокамеру только тогда, когда водитель подъедет к месту получения. Раньше автокамера сбрасывалась во включенное состояние при каждом изменении состояния поездки. Автокамера по-прежнему включена по умолчанию. Autocamera не включится повторно, если будет установлена ​​новая активная поездка без нового вызова startTripMonitoring() .

v0.6.1 (26 июня 2019 г.)

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

  • Поддержка Carpool для совместного путешествия.

Изменения API

  • ConsumerController.getConsumerMapStyle() теперь возвращает ConsumerMapStyle а не Task<ConsumerMapStyle> .

  • Добавлен PolylineStyle.setZIndex() .

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

  • Анимация маршрута теперь происходит только тогда, когда сегмент маршрута синхронизирован, что улучшает взаимодействие с пользователем.

  • Исправлено «мерцание» автомобиля во время интерполяции анимации, когда обновления местоположения водителя расположены близко друг к другу.

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

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

Улучшения

  • Теперь откройте класс gRPC Status с помощью незапутанных методов.

v0.5.1.01 (17 мая 2019 г.)

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

  • Постоянная поддержка Journey Sharing.

Изменения API

  • Новый класс ConsumerController .

Тип полилинии

Старое значение Новое значение
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ПотребительПоездкаОбратный вызов

Старое значение Новое значение
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ПотребительКонтроллер

  • Теперь вы можете устанавливать обратные вызовы для состояний, не входя в состояние.
Метод Перезвонить
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) позволяет вам установить язык, используемый в вызовах FleetEngine (например, для описаний точек выдачи).

Улучшения

  • Состояние выбора выбора теперь имеет перетаскиваемую булавку.
  • Удалена анимация камеры в состоянии INITIALIZE .
  • ManagedChannelBuilder заменен на AndroidChannelBuilder .
,

В этом разделе содержатся примечания к выпуску Consumer SDK для Android.

2.3.0 (2 августа 2024 г.)

Изменения API

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

  • Добавьте метод getServerTimeMillis() в VehicleLocation , чтобы определить время получения обновления местоположения Fleet Engine.

2.2.0 (7 мая 2024 г.)

Изменения API

  • Добавлен API поддержки для интеграции Jetpack Compose. Это экспериментальная функция. Для получения подробной информации об интеграции с Jetpack Compose обратитесь к своему представителю.

2.1.0 (17 января 2024 г.)

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

  • Устраняет сбой, возникающий, когда SDK инициализируется более одного раза в течение жизненного цикла приложения.

Изменения API

  • Представляет метод для получения экземпляра GoogleMap , созданного SDK ( ConsumerGoogleMap.getGoogleMap() ).
  • Представляет API для получения экземпляров Marker , созданных SDK для представления транспортного средства ( ConsumerController.getConsumerMarker() ).
  • Представляет API для получения клиентских прогнозируемых обновлений времени и расстояния во время совместного использования путешествий ( ProjectedRouteEta ).

1.99.2 (3 ноября 2023 г.)

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

  • Устраняет сбой, возникающий при выполнении анимации камеры, когда для заполнения недостаточно вертикального или горизонтального пространства. Это происходит только в последней версии рендерера карт.

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

Проблемы

  • ConsumerApi.initialize() выдает исключение, если он вызывается, когда экземпляр API уже существует. Чтобы обойти эту проблему, сначала вызовите ConsumerApi.getInstance() и оцените возвращенную Task , чтобы определить, существует ли уже экземпляр API.

2.0.0 (15 сентября 2023 г.)

Объявление: критические изменения

  • Минимальные требования к уровню API изменены с 21 на 23.

  • Обновлены требования к версии Maps SDK с версии 17.0.0 до версии 18.1.0.

  • Минимальные требования к версии стандартной библиотеки Kotlin обновлены с версии 1.6.10 до версии 1.9.0.

  • Обновите версии зависимостей сервисов Google Play.

    • Минимальные требования к версии базовой библиотеки play-services обновлены с версии 18.0.1 до версии 18.2.0.

    • Минимальные требования к версии библиотеки play-services-base обновлены с версии 18.0.0 до версии 18.2.0.

    • Минимальные требования к версии библиотеки play-services-location обновлены с версии 17.0.0 до версии 21.0.1.

    • Минимальные требования к версии библиотеки play-services-tasks обновлены с версии 18.0.1 до версии 18.0.2.

  • Добавляет библиотеку androidx.room:room-runtime с минимальным требованием к версии v2.5.2.

  • Обновите следующие версии зависимостей

    • Минимальные требования к версии библиотеки android-maps-utils обновлены с версии 0.4.2 до версии 3.5.2.

    • Минимальные требования к версии com.google.android.datatransport:transport-backend-cct обновлены с версии 3.0.0 до версии 3.1.9.

    • Минимальные требования к версии com.google.android.datatransport:transport-runtime обновлены с версии 3.0.1 до версии 3.1.9.

    • Минимальные требования к версии androidx.lifecycle:lifecycle-extensions обновлены с версии 2.0.0 до версии 2.2.0.

    • Минимальные требования к версии androidx.lifecycle:lifecycle-common-java8 обновлены с версии 2.0.0 до версии 2.6.1.

    • Минимальные требования к версии androidx.appcompat:appcompat обновлены с v1.0.0 до v1.6.1.

    • Минимальные требования к версии androidx.fragment:fragment обновлены с v1.0.0 до v1.6.1.

  • Удаляет следующие ранее устаревшие API: ConsumerTrip , ConsumerTripCallback , ConsumerTripManager , ConsumerTripOptions . На смену им пришли TripModel , TripModelCallback , TripModelManager и TripModelOptions .

  • Приложения, использующие Consumer SDK, теперь должны иметь targetSdkVersion API 31 или более поздней версии, compileSdkVersion API 33 или более поздней версии.

  • Приложения, использующие Consumer SDK, теперь должны включать поддержку библиотеки Java 8. См. https://developer.android.com/studio/write/java8-support для получения инструкций по обновлению.

  • Приложения, использующие Proguard или Dexguard, должны перейти на R8. См. https://developer.android.com/build/shrink-code для получения дополнительной информации.

  • Приложения, использующие Consumer SDK, должны включать обессеривание. Инструкции см. на странице https://developer.android.com/studio/write/java8-support#library-desugaring.

  • Метод ConsumerApi.initialize() теперь генерирует исключение, если он вызывается, когда уже создан экземпляр API. Task , возвращаемая ConsumerApi.getInstance() должна использоваться для определения наличия заранее созданного экземпляра API.

Объявление: прекращение поддержки API

  • Устаревшие классы аннотаций Trip.TripStatus и Trip.TripType , вместо них добавляются классы аннотаций TripInfo.TripStatus и TripInfo.TripType .

    • В рамках этого изменения TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) устарел, а вместо него добавлен TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) .

    • В рамках этого изменения TripInfo#getTripStatus() устарел, вместо него добавлен TripInfo#getCurrentTripStatus() .

    • В рамках этого изменения TripInfo#getTripType() устарел, вместо него добавлен TripInfo#getCurrentTripType() .

  • Устаревший класс Trip .

Другие изменения и исправления ошибок

  • Поддерживает запрос последней версии средства визуализации Maps SDK. Подробности см. в разделе «Новый рендерер карт» .

  • Обеспечивает поддержку диапазона Maps SDK версий от v18.1.0 (включительно) до v19.0.0 (эксклюзивно).

  • Исправляет ошибку «превышен срок» для внутренней связи между SDK и серверной частью Google.

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

Руководство по миграции

1.99.1 (31 августа 2023 г.)

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

  • Устраняет сбой, возникающий при уничтожении активности или фрагмента хоста SDK.

  • Устраняет сбой, возникающий, когда размеры MapView равны 0 (высота или ширина).

  • Исправлен сбой, возникающий при проецировании местоположения автомобиля на полилинию маршрута.

Улучшения

  • Предотвращает сбой SDK, когда ведущее приложение загружено неопубликовано, а визуальные ресурсы по умолчанию отсутствуют.

1.99.0 (22 июня 2023 г.)

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

  • Устранена проблема с рендерингом на экранах небольшого размера и в режиме «картинка в картинке».

  • Устраняет мерцание автомобиля во время совместного путешествия.

1.2.1 (7 июня 2023 г.)

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

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

1.2.0 (21 ноября 2022 г.)

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

  • Исправлена ​​ошибка, из-за которой в обратном вызове onTripActiveRouteTrafficUpdated сообщался пустой трафик.

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

  • «Полилинии с учетом трафика» теперь общедоступны.

1.1.2 (27 октября 2022 г.)

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

  • Устранена ошибка, приводившая к исчезновению полилинии маршрута после запуска JourneySharingSession более одного раза для TripModel .

Объявление: прекращение поддержки Android 5 (25 июля 2022 г.)

Для нашей версии SDK v1.1.1 мы предоставляем дополнительный год поддержки приложений, работающих на Android 5, для уровней API 21 и 22.

Что это значит:

  • Потребительский SDK, работающий в ваших приложениях Android, будет поддерживать как минимум Android 5 (уровень API 21) до 30 июня 2023 года.

  • После 30 июня 2023 г. мы будем поддерживать только Android API уровня 23 и выше. Другими словами, после этой даты мы прекратим поддержку Android API уровней 21 и 22 во всех версиях SDK. Это означает, что ошибки, связанные с Android 21 или 22, в любой версии SDK (включая 4.x) не будут исправлены, и мы не гарантируем корректную работу SDK.

v1.1.1 (25 июля 2022 г.)

Изменение зависимости

  • Понижает минимальный поддерживаемый уровень Android API до 21.

v1.1.0 (28 апреля 2022 г.)

  • Внутренние улучшения.

v1.0.19 (17 марта 2022 г.)

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

  • Исправлена ​​утечка памяти в классе ConsumerApi .

v1.0.14 (30 ноября 2021 г.)

Минимальный поддерживаемый уровень Android API теперь равен 23.

Изменения API

  • Изменения в классах ConsumerTrip и ConsumerTripManager .

    • Исправлены имена некоторых методов, чтобы сделать их значение более понятным и привести в соответствие с платформой iOS.
  • Изменения в ConsumerTripCallback , ConsumerTrip и TripInfo .

    • Изменены имена некоторых классов, чтобы обеспечить равенство с iOS. Введены TripModel , TirpModelManager и TripModelOptions , чтобы объявить устаревшими ConsumerTrip , ConsumerTripManager и ConsumerTripOptions .

    • Подчищены имена некоторых методов. Пересмотрены или добавлены комментарии JavaDoc к методам для более четкой передачи смысла.

    • Улучшена обработка ошибок.

Настройка стиля

  • Устаревшие устаревшие оболочки

    • MarkerStyleOptions и PolylineStyleOptions устарели и заменены MarkerOptions и PolylineOptions , которые используются совместно с Maps SDK.

Мониторинг сбоев

  • Добавлено обнаружение и журналирование сбоев.

    • Было сделано дополнение, позволяющее отказаться от этой функции. Это было сделано в рамках более масштабных усилий по мониторингу сбоев в масштабах всего региона.

Изменения аутентификации

  • Удалите ненужные методы из интерфейсов аутентификации.
    • Удален параметр ServiceType .

v0.9.28 (18 мая 2021 г.)

Изменения API

  • Обновлены все методы ConsumerTripCallback для использования TripInfo в качестве параметра.
  • Добавлен ConsumerTrip.isRefreshing() , который указывает, активно ли ConsumerTrip обновляет себя свежей информацией о поездке из Fleet Engine.
  • Добавлен ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() .
  • Добавлен ConsumerTripCallback.onTripRemainingRouteUpdated() .
  • Замените типы возвращаемых данных Guava ( ImmutableSet , ImmutableList ) эквивалентными классами java.util .
  • Изменения имени пакета:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

Изменения реализации

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

v0.9.15 (7 октября 2020 г.)

Изменения API

  • В этом выпуске представлены полилинии с учетом трафика . - Добавлены TripInfo.getActiveRouteTraffic() и TripInfo.getRemainingRouteTraffic() .
    • Добавлены ConsumerTripCallback.onTripActiveRouteTrafficUpdated() и ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() чтобы указать, когда изменился трафик.
    • Добавлены PolylineStyleOptions для настройки трафика ( setTrafficEnabled() , setTrafficColorNoData() , setTrafficColorNormal() , setTrafficColorSlow() , setTrafficColorTrafficJam() ).
    • Открытый PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION .
    • Добавлен TripWaypoint.getTrafficData() .
    • Добавлен тип данных TrafficData .
    • Добавлен ConsumerController.hideAllSessions() . ConsumerController.showSession() больше не принимает значение null в качестве аргумента.

v0.9.9 (15 июля 2020 г.)

Изменения API

  • Это серьезное изменение, которое представляет модульную архитектуру с более четкой взаимосвязью между уровнем только данных (например, ConsumerTripManager ) и уровнем пользовательского интерфейса (например, JourneySharingSession ). Информацию о переходе на новую архитектуру см. в Руководстве по миграции на модульность . — Объект ConsumerTrip теперь получается из ConsumerTripManager.getTrip() .
    • ConsumerTrip.unregisterCallback был переименован в ConsumerTrip.unregisterTripCallback .
    • ConsumerTrip.isCallbackRegistered был переименован в ConsumerTrip.isTripCallbackRegistered .
    • Добавлены ConsumerTrip.setConsumerTripOptions() и ConsumerTrip.getConsumerTripOptions() .
    • Удален ConsumerTrip.setAutoRefreshInterval() .
  • Удалены API, не связанные с обменом данными о поездках.
    • Удалена карта плотности транспорта.
    • Убрано состояние предварительного просмотра поездки.
    • Убрано состояние выбора пикапа.
    • Убрано состояние выбора выпадающего списка.
    • Удалены следующие типы маркеров: SELECTED_PICKUP_POINT , SUGGESTED_PICKUP_POINT , HIGHLIGHTED_PICKUP_POINT и SELECTED_DROPOFF_POINT .
  • OnConsumerMarkerClickCallback и ConsumerMapReadyCallback изменены с интерфейсов на абстрактные классы.
  • Добавлены ConsumerController.getCameraUpdate() , ConsumerController.isAutoCameraEnabled() и ConsumerController.enableAutoCamera() .
  • Удалены пользовательский FAB и связанные с ним методы ( ConsumerController.isMyLocationFabEnabled и ConsumerController.setMyLocationFabEnabled ).

Изменения реализации

  • ConsumerTripCallback , независимо от того, зарегистрировано в или без LifecycleOwner , больше не автоматически не зарегистрировано на TripStatus.COMPLETE или TripStatus.CANCELED .
  • Autocamera теперь включена по умолчанию и никогда не восстанавливает и не отключает себя. Ранее Autocamera автоматически восстанавливается на TripStatus.ARRIVED_AT_PICKUP и отключил себя, когда пользователь взаимодействовал с картой во время обмена путешествиями.
  • Были сделаны следующие улучшения для обмена анимацией транспортных средств:
    • Анимация по обмену путешествиями теперь обрабатывает ситуацию, когда транспортное средство может законно перейти обратно по уже прослеживаемому маршруту.
    • Автомобиль теперь будет прямым анимированием вместо маршрута, интерполяющего между точками, когда он определяется алгоритмически подходящим.
  • Разрешения FINE_LOCATION больше не требуются.

Другие изменения

  • Обновлено следующие версии зависимостей:
    • com.google.android.datatransport: Transport-API: 2.2.0
    • com.google.android.datatransport: Transport-Backend-CCT: 2.2.0
    • com.google.android.datatransport: Transport-Runtime: 2.2.0

v0.9.1 (23 марта 2020 г.)

API меняется

  • Добавлен TripInfo.getVehicleId() , TripInfo.getNumberOfPassengers() , TripInfo.getIntermediateDestinationIndex() , TripInfo.getTripActiveRoute() и TripInfo.getTripRemainingRoute() .
  • Класс добавленных options , используемый во время инициализации ConsumerApi , который позволяет динамически устанавливать адрес FleetEngine . Если API не вызывается со значением FleetEngine , он пытается извлечь его из манифеста Android, иначе возвращается к значению по умолчанию.

Улучшения

  • Полилин маршрута не отображается, когда статус поездки ARRIVED_AT_PICKUP .
  • Отслеживание транспортных средств вне маршрута было улучшено (требует Driversdk 1.15):
    • Отслеживание транспортных средств не прижимает автомобиль к маршруту, когда транспортное средство проезжает мимо точки сбора.
    • Отслеживание транспортных средств позволяет отображать автомобиль с дороги; Например, на парковочных местах не нанесенных на карту.
  • Значок транспортного средства теперь обновляется, когда направление водителя не соответствует пункту назначения в двигателе флота.

v0.8.6 (16 декабря 2019 г.)

API меняется

  • Добавлен TripInfo.getVehicleLocation() .

  • ConsumerMapView больше не является окончательным.

Изменения в реализации

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

Другие изменения

  • Требуются новые зависимости. Смотрите файл .pom для получения подробной информации.

    • com.google.android.datatransport: Transport-API: 2.0.0
    • com.google.android.datatransport: transport-backend-cct: 2.0.2
    • com.google.android.datatransport: Transport-Runtime: 2.0.0
  • Добавлены журналы для задержки запроса на поездку.

  • Добавлены журналы для ошибок ответа на поездку.

Примечания

  • Со времени версии 0.8.1, потребитель SDK для Android -судов в качестве реактивного zip Archive. Для получения информации о том, как его де-джитификация, см. Jetifier: обратный режим .

v0.8.1 (13 сентября 2019 г.)

Новые функции

API меняется

  • Добавлен ConsumerController.disableAutoCamera() как противоположная функция с centerMapForState() .

  • VehicleLocation.getUpdateTime() теперь возвращает длинную, представляющую временную метку (в миллисекундах).

  • Упростил интерфейс AuthTokenFactory , чтобы выявить один метод для генерации токенов. Изменено AuthTokenFactory с интерфейса на абстрактный класс, чтобы обеспечить обратную совместимость в Java7. Это изменение является обратно совместимым, но старые методы генерации токенов с одним сервисом устарели и в конечном итоге будут удалены.

Изменения в реализации

  • Активы теперь сосредоточены на Icon Center, исключая смещение Shadow.

  • setState TO JOURNEY_SHARING onStartTripMonitoring() вместо ожидания контролируемого статуса поездки.

  • Всегда возвращает данные для обновления данных первой поездки, даже когда данные о поездке не синхронизированы.

  • Добавлены Android Map Utils в качестве обеспеченной зависимости.

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

  • Исправлено сломанный синтаксис экспорта прогноза для GRPC Keep.

v0.7.0 (7 августа 2019 г.)

Новые функции

  • Многократная поддержка для обмена путешествиями.

API меняется

  • Новые методы для ConsumerTripCallback .

    • onTripIntermediateDestinationsUpdated() .
    • onTripETAToNextTripWaypointUpdated() .
  • Новые методы ConsumerController .

    • getIntermediateDestinations() .
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations) .
  • Новые TripStatuses .

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION .
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION .
  • Новые TripWaypoint Getters.

    • getETAMillis() .
    • getDistanceMeters() .
  • Добавлен класс TripInfo .

    • Вы можете получить TripInfo для активной поездки с ConsumerTripManager.getActiveTripInfo() .
  • Добавлен WaypointType.INTERMEDIATE_DESTINATION .

  • Добавлен MarkerType.TRIP_INTERMEDIATE_DESTINATION .

  • Создан ConsumerMapState.JOURNEY_SHARING из объединенных ConsumerMapStates ENROUTE_TO_PICKUP , ARRIVED_AT_PICKUP , ENROUTE_TO_DROPOFF и COMPLETE .

    • StateChangeCallbacks обновляется.

    • Добавлено onStateJourneySharing() .

    • Удален onStateWaitingForPickup() , onStateDriverArrived() , onStateEnroute() и onStateEndofTrip() .

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

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

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

  • Увеличение камеры теперь включает в себя только активный маршрут и следующую путевую точку поездки (путешествующая точка, которая принадлежит поездке). Даже если оставшаяся нога видна, зум никогда не будет включать его. Ранее точка высадки была включена в зум, когда транспортное средство либо зарекомендовало себя, либо прибыли в пикап. Это больше не правда.

Улучшения

  • Заполнить оставшуюся вещество -точки нулевой точки с данными драйверов (оставшиеся список путевой точки возвращается от ConsumerTripCallback.onTripRemainingWaypointsUpdated и TripInfo.getRemainingWaypoints() .

  • Обновите все оставшиеся путевые точки ETA, когда ETA на первую путевую точку в списке изменяется.

  • Force повторно создает автокамеры только тогда, когда водитель прибывает в пикап. Ранее Autocamera сбрасывалась в допущение к каждому изменению состояния поездки. Autocamera по -прежнему включена по умолчанию. Autocamera не будет повторно, если новая активная поездка будет установлена ​​без свежего вызова для startTripMonitoring() .

v0.6.1 (26 июня 2019 г.)

Новые функции

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

API меняется

  • ConsumerController.getConsumerMapStyle() теперь возвращает ConsumerMapStyle а не Task<ConsumerMapStyle> .

  • Добавлен PolylineStyle.setZIndex() .

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

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

  • Фиксированное транспортное средство «мерцание» во время интерполяции анимации, когда обновления местоположения водителя находятся близко друг к другу.

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

  • Покажите активную маршруту полилинии над оставшимся маршрутом, когда они перекрываются.

Улучшения

  • Теперь разоблачайте класс Status GRPC неопубликованными методами.

v0.5.1.01 (17 мая 2019 г.)

Новые функции

  • Блюда к спине поддержки для обмена путешествиями.

API меняется

  • Новый класс ConsumerController .

PolylineType

Старая стоимость Новое значение
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

Старая стоимость Новое значение
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumperController

  • Теперь вы можете установить обратные вызовы для штатов, не въезжая в штат.
Метод Перезвонить
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) позволяет устанавливать язык, используемый в вызовах FleetEngine (например, для описаний точек пикапа).

Улучшения

  • Состояние выбора высадки теперь имеет выталкиваемую булавку.
  • Удаленная анимация камеры в состоянии INITIALIZE .
  • Заменил ManagedChannelBuilder с AndroidChannelBuilder .
,

Этот раздел содержит заметки о выпуске для потребителя SDK для Android.

2.3.0 (2 августа 2024 г.)

API меняется

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

  • Добавьте метод getServerTimeMillis() в VehicleLocation , чтобы определить время, когда обновление местоположения было получено Fleet Engine.

2.2.0 (7 мая 2024 г.)

API меняется

  • Добавлена ​​поддержка API для JetPack Compose Integration. Это экспериментальная функция. Для получения подробной информации об интеграции с JetPack Compose, обратитесь к своему представителю.

2.1.0 (17 января 2024 г.)

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

  • Исправляет сбой, который возникает, когда SDK инициализируется более одного раза в жизненном цикле приложения.

API меняется

  • Вводит метод для извлечения экземпляра GoogleMap , созданного SDK ( ConsumerGoogleMap.getGoogleMap() ).
  • Представляет API для извлечения экземпляров Marker , созданных SDK, для представления транспортного средства ( ConsumerController.getConsumerMarker() ).
  • Предводит API для получения прогнозируемых обновлений клиента для времени и расстояния во время обмена путешествиями ( ProjectedRouteEta ).

1.99.2 (3 ноября 2023 г.)

  • Исправляет сбой, который происходит, когда SDK инициализируется из удаленного процесса, отдельно от приложения.

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

  • Исправляет ошибку, которая заставляет первое этап обратной поездки, когда вторая нога проходит по одной и той же дороге.

Проблемы

  • ConsumerApi.initialize() вызывает исключение, если вы вызываете, когда экземпляр API уже существует. Чтобы обойти это, сначала вызовите ConsumerApi.getInstance() и оцените возвращенную Task , чтобы определить, существует ли уже экземпляр API.

2.0.0 (15 сентября 2023 г.)

Объявление: нарушение изменений

  • Минимальный требование уровня API обновляется с 21 до 23.

  • Обновления Maps SDK версии Требование от V17.0.0 до V18.1.0

  • Минимальное требование к стандартной библиотеке Kotlin обновляется с v1.6.10 до v1.9.0

  • Обновить версии зависимостей Google Play Services

    • Минимальное требование к версии библиотеки в библиотеке с минимальными играми обновляется от V18.0.1 до v18.2.0

    • Минимальная версия библиотеки с минимальными игроками обновляется от V18.0.0 до v18.2.0

    • Минимальное требование к версии библиотеки в библиотеке воспроизведения обновляется с v17.0.0 до v21.0.1

    • Минимальные задачи по вопросам игровых услуг.

  • Добавляет библиотеку Androidx.room: Room-Runtime с минимальными требованиями версии, установленной на v2.5.2

  • Обновить следующие версии зависимостей

    • Минимальные требования к версии библиотеки Android-Maps-Utils обновляются с V0.4.2 до v3.5.2

    • Минимальный com.google.android.datatransport: Требование версии Transport-Backend-CCT обновляется с v3.0.0 до v3.1.9

    • Минимальный com.google.android.datatransport: Требование к версии транспортировки обновляется с v3.0.1 до v3.1.9

    • Минимальный androidx.lifecycle: Жизненный цикл-экстенсионные требования версии обновляются с v2.0.0 до v2.2.0

    • Минимальный Androidx.lifecycle: Требование версии LifeCycle-Common-Java8 обновляется с v2.0.0 до v2.6.1

    • Минимальный androidx.appcompat: требование версии appcompat обновляется с v1.0.0 до v1.6.1

    • Минимальный Androidx.Fragment: требование к версии фрагментов обновляется с v1.0.0 до v1.6.1

  • Удаляет следующие ранее устаревшие API: ConsumerTrip , ConsumerTripCallback , ConsumerTripManager , ConsumerTripOptions . Они были заменены TripModel , TripModelCallback , TripModelManager и TripModelOptions .

  • Приложения, которые используют потребительский SDK, теперь должны иметь targetSdkVersion API 31 или более, compileSdkVersion API 33 или более.

  • Приложения, которые используют потребительский SDK, теперь должны включать поддержку библиотеки Java 8. См. https://developer.android.com/studio/write/java8-support для получения инструкций по обновлению.

  • Приложения, использующие Proguard или Dexguard, должны перейти на R8. См. https://developer.android.com/build/shrink-code для получения дополнительной информации.

  • Приложения, которые используют потребительский SDK, должны включать десугарирование. См. Https://developer.android.com/studio/write/java8-support#library-desugaring для инструкций.

  • Метод ConsumerApi.initialize() теперь бросает исключение, если его вызывают, когда уже создан экземпляр API. Task , возвращаемая ConsumerApi.getInstance() должна использоваться для определения того, есть ли экземпляр API, созданный заранее.

Объявление: аспекты API

  • Университет Trip.TripStatus и Trip.TripType Annotation Class, добавляет TripInfo.TripStatus и TripInfo.TripType Annation Class, чтобы заменить их.

    • В рамках этого изменения, TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) и TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) добавляется, чтобы заменить его.

    • В рамках этого изменения TripInfo#getTripStatus() TripInfo#getCurrentTripStatus() устарел, чтобы заменить его.

    • В рамках этого изменения TripInfo#getTripType() TripInfo#getCurrentTripType() , чтобы заменить его.

  • Обеспечивает занятия Trip .

Другие изменения и исправления ошибок

  • Поддерживает запрашивание последних карт рендеринга SDK. Смотрите новую карту рендерера для деталей.

  • Обеспечивает поддержку диапазона SDK от V18.1.0 (включительно) до V19.0.0 (эксклюзивные) версии.

  • Исправляет ошибку «крайний крайний срок» для внутренней связи между SDK и Backend Google.

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

Миграционный гид

1.99.1 (31 августа 2023 г.)

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

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

  • Исправляет сбой, который происходит, когда размеры MapView составляют 0 (высота или ширина).

  • Исправляет сбой, который возникает при проецировании местоположения автомобиля на маршруте.

Улучшения

  • Предотвращает сбое SDK, когда хост -приложение будет загружено, а визуальные ресурсы по умолчанию отсутствуют.

1,99,0 (22 июня 2023 г.)

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

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

  • Исправляет мерцающие транспортные средства во время обмена путешествиями.

1.2.1 (7 июня 2023 г.)

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

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

1.2.0 (21 ноября 2022 г.)

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

  • Исправляет ошибку, которая заставила сообщать о onTripActiveRouteTrafficUpdated вызове с пустым трафиком.

Новые функции

  • «Полилички с дорожным планом» в настоящее время обычно доступны.

1.1.2 (27 октября 2022 г.)

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

  • Адреса ошибку, которая заставляет маршрут, полилиний исчезает после того, как JourneySharingSession запускается более одного раза для TripModel .

Объявление: поддержка замораживания Android 5 (25 июля 2022 г.)

Для нашей версии V1.1.1 SDK мы предоставляем дополнительный год поддержки приложений, работающих на Android 5, для обоих уровней API 21 и 22.

Что это значит:

  • Потребитель SDK, работающий в ваших приложениях Android, будет поддерживать минимальный Android 5 (уровень 21 API) до 30 июня 2023 года.

  • После 30 июня 2023 года мы будем поддерживать только уровни API API Android 23 и выше. Другими словами, мы перестанем поддерживать уровни API API Android 21 и 22 во всех версиях SDK после этой даты. Это означает, что ошибки, связанные с Android 21 или 22, в любой версии SDK (включая 4.x) не будут исправлены, и мы не гарантируем, что SDK будут вести себя правильно.

v1.1.1 (25 июля 2022 г.)

Изменение зависимости

  • Понижает минимальный поддерживаемый API -уровень Android -поддерживаемого до 21.

v1.1.0 (28 апреля 2022 г.)

  • Внутренние улучшения.

v1.0.19 (17 марта 2022 г.)

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

  • Исправлена ​​утечка памяти в классе ConsumerApi .

v1.0.14 (30 ноября 2021 г.)

Минимальный уровень поддерживаемого API Api API сейчас составляет 23.

API меняется

  • Изменения в классах ConsumerTrip и ConsumerTripManager .

    • Очистил некоторые названия методов, чтобы сделать их значение более яснее, и чтобы соответствовать платформе iOS.
  • Изменения в ConsumerTripCallback , ConsumerTrip и TripInfo .

    • Изменил некоторые имена классов, чтобы сформировать паритет с iOS. Представили TripModel , TirpModelManager и TripModelOptions для снижения ConsumerTrip , ConsumerTripManager и ConsumerTripOptions .

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

    • Улучшенная обработка ошибок.

Настройка стиля

  • Устаревшие унаследованные обертки

    • MarkerStyleOptions и PolylineStyleOptions были устарели и заменены MarkerOptions и PolylineOptions , которые оба обмениваются с картами SDK.

Мониторинг сбоя

  • Добавлены обнаружение аварий и регистрацию.

    • Было сделано дополнение, чтобы позволить вам отказаться от этой функциональности. Это было сделано в рамках более крупной гео-усилий для мониторинга сбоев.

Аутентификация изменяется

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

v0.9.28 (18 мая 2021 г.)

API меняется

  • Обновлено все методы ConsumerTripCallback , чтобы использовать TripInfo в качестве параметра.
  • Добавлен ConsumerTrip.isRefreshing() , что указывает, активно ли ConsumerTrip активно обновляется с информацией о свежем путешествии из двигателя флота.
  • Добавлен ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() .
  • Добавлен ConsumerTripCallback.onTripRemainingRouteUpdated() .
  • Замените типы возврата гуавы ( ImmutableSet , ImmutableList ) на эквивалентные классы java.util .
  • Изменения имени пакета:

    • com.google.android.libraries.ridesharing.common.authtokencontext -> com.google.android.libraries.ridesharing.consumer.auth.authtokencontext
    • com.google.android.libraries.ridesharing.common.authtokenfactory -> com.google.android.libraries.ridesharing.consumer.auth.authtokenfactory
    • com.google.android.libraries.ridesharing.common.fleetengineserviceType -> com.google.android.libraries.ridesharing.consumer.auth.fleetengineserviceType - com.google.android.libraries.ridesharing.common.model.trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

Изменения в реализации

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

v0.9.15 (7 октября 2020 г.)

API меняется

  • Этот релиз представляет полилинии, осведомленные о трафике . - Добавлена TripInfo.getActiveRouteTraffic() и TripInfo.getRemainingRouteTraffic() .
    • Добавлен ConsumerTripCallback.onTripActiveRouteTrafficUpdated() и ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() чтобы указать, когда изменился трафик.
    • Добавлены PolylineStyleOptions для настройки трафика ( setTrafficEnabled() , setTrafficColorNoData() , setTrafficColorNormal() , setTrafficColorSlow() , setTrafficColorTrafficJam() ).
    • Появляемый PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION .
    • Добавлен TripWaypoint.getTrafficData() .
    • Добавлен тип данных TrafficData .
    • Добавлен ConsumerController.hideAllSessions() . ConsumerController.showSession() больше не принимает NULL в качестве аргумента.

v0.9.9 (15 июля 2020 г.)

API меняется

  • Это основное изменение, которое вводит модульную архитектуру с более четкой взаимосвязи между слоем только для данных (например, ConsumerTripManager ) и уровнем пользовательского интерфейса (например, JourneySharingSession ). Для получения информации о миграции в новую архитектуру см. Руководство по миграции модуляризации . - Объект ConsumerTrip теперь получается от ConsumerTripManager.getTrip() .
    • ConsumerTrip.unregisterCallback был переименован в ConsumerTrip.unregisterTripCallback .
    • ConsumerTrip.isCallbackRegistered был переименован в ConsumerTrip.isTripCallbackRegistered .
    • Добавлен ConsumerTrip.setConsumerTripOptions() и ConsumerTrip.getConsumerTripOptions() .
    • Удален ConsumerTrip.setAutoRefreshInterval() .
  • Удалили API-интерфейсы без Journey.
    • Удаленная карта плотности автомобиля.
    • Удаленное государство предварительного просмотра.
    • Удаленное состояние выбора пикапа.
    • Удаленное состояние отбора высадки.
    • Удалили следующие типы маркеров: SELECTED_PICKUP_POINT , SUGGESTED_PICKUP_POINT , HIGHLIGHTED_PICKUP_POINT и SELECTED_DROPOFF_POINT .
  • Изменено OnConsumerMarkerClickCallback и ConsumerMapReadyCallback от интерфейсов на абстрактные классы.
  • Добавлен ConsumerController.getCameraUpdate() , ConsumerController.isAutoCameraEnabled() и ConsumerController.enableAutoCamera() .
  • Удалил пользовательский FAB и связанные с ним методы ( ConsumerController.isMyLocationFabEnabled и ConsumerController.setMyLocationFabEnabled ).

Изменения в реализации

  • ConsumerTripCallback , независимо от того, зарегистрировано в или без LifecycleOwner , больше не автоматически не зарегистрировано на TripStatus.COMPLETE или TripStatus.CANCELED .
  • Autocamera теперь включена по умолчанию и никогда не восстанавливает и не отключает себя. Ранее Autocamera автоматически восстанавливается на TripStatus.ARRIVED_AT_PICKUP и отключил себя, когда пользователь взаимодействовал с картой во время обмена путешествиями.
  • Были сделаны следующие улучшения для обмена анимацией транспортных средств:
    • Анимация по обмену путешествиями теперь обрабатывает ситуацию, когда транспортное средство может законно перейти обратно по уже прослеживаемому маршруту.
    • Автомобиль теперь будет прямым анимированием вместо маршрута, интерполяющего между точками, когда он определяется алгоритмически подходящим.
  • Разрешения FINE_LOCATION больше не требуются.

Другие изменения

  • Обновлено следующие версии зависимостей:
    • com.google.android.datatransport: Transport-API: 2.2.0
    • com.google.android.datatransport: Transport-Backend-CCT: 2.2.0
    • com.google.android.datatransport: Transport-Runtime: 2.2.0

v0.9.1 (23 марта 2020 г.)

API меняется

  • Добавлен TripInfo.getVehicleId() , TripInfo.getNumberOfPassengers() , TripInfo.getIntermediateDestinationIndex() , TripInfo.getTripActiveRoute() и TripInfo.getTripRemainingRoute() .
  • Класс добавленных options , используемый во время инициализации ConsumerApi , который позволяет динамически устанавливать адрес FleetEngine . Если API не вызывается со значением FleetEngine , он пытается извлечь его из манифеста Android, иначе возвращается к значению по умолчанию.

Улучшения

  • Полилин маршрута не отображается, когда статус поездки ARRIVED_AT_PICKUP .
  • Отслеживание транспортных средств вне маршрута было улучшено (требует Driversdk 1.15):
    • Отслеживание транспортных средств не прижимает автомобиль к маршруту, когда транспортное средство проезжает мимо точки сбора.
    • Отслеживание транспортных средств позволяет отображать автомобиль с дороги; Например, на парковочных местах не нанесенных на карту.
  • Значок транспортного средства теперь обновляется, когда направление водителя не соответствует пункту назначения в двигателе флота.

v0.8.6 (16 декабря 2019 г.)

API меняется

  • Добавлен TripInfo.getVehicleLocation() .

  • ConsumerMapView больше не является окончательным.

Изменения в реализации

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

Другие изменения

  • Требуются новые зависимости. Смотрите файл .pom для получения подробной информации.

    • com.google.android.datatransport: Transport-API: 2.0.0
    • com.google.android.datatransport: transport-backend-cct: 2.0.2
    • com.google.android.datatransport: Transport-Runtime: 2.0.0
  • Добавлены журналы для задержки запроса на поездку.

  • Добавлены журналы для ошибок ответа на поездку.

Примечания

  • Со времени версии 0.8.1, потребитель SDK для Android -судов в качестве реактивного zip Archive. Для получения информации о том, как его де-джитификация, см. Jetifier: обратный режим .

v0.8.1 (13 сентября 2019 г.)

Новые функции

API меняется

  • Добавлен ConsumerController.disableAutoCamera() как противоположная функция с centerMapForState() .

  • VehicleLocation.getUpdateTime() теперь возвращает длинную, представляющую временную метку (в миллисекундах).

  • Упростил интерфейс AuthTokenFactory , чтобы выявить один метод для генерации токенов. Изменено AuthTokenFactory с интерфейса на абстрактный класс, чтобы обеспечить обратную совместимость в Java7. Это изменение является обратно совместимым, но старые методы генерации токенов с одним сервисом устарели и в конечном итоге будут удалены.

Изменения в реализации

  • Активы теперь сосредоточены на Icon Center, исключая смещение Shadow.

  • setState TO JOURNEY_SHARING onStartTripMonitoring() вместо ожидания контролируемого статуса поездки.

  • Всегда возвращает данные для обновления данных первой поездки, даже когда данные о поездке не синхронизированы.

  • Добавлены Android Map Utils в качестве обеспеченной зависимости.

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

  • Исправлено сломанный синтаксис экспорта прогноза для GRPC Keep.

v0.7.0 (7 августа 2019 г.)

Новые функции

  • Многократная поддержка для обмена путешествиями.

API меняется

  • Новые методы для ConsumerTripCallback .

    • onTripIntermediateDestinationsUpdated() .
    • onTripETAToNextTripWaypointUpdated() .
  • Новые методы ConsumerController .

    • getIntermediateDestinations() .
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations) .
  • Новые TripStatuses .

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION .
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION .
  • Новые TripWaypoint Getters.

    • getETAMillis() .
    • getDistanceMeters() .
  • Добавлен класс TripInfo .

    • Вы можете получить TripInfo для активной поездки с ConsumerTripManager.getActiveTripInfo() .
  • Добавлен WaypointType.INTERMEDIATE_DESTINATION .

  • Добавлен MarkerType.TRIP_INTERMEDIATE_DESTINATION .

  • Создан ConsumerMapState.JOURNEY_SHARING из объединенных ConsumerMapStates ENROUTE_TO_PICKUP , ARRIVED_AT_PICKUP , ENROUTE_TO_DROPOFF и COMPLETE .

    • StateChangeCallbacks обновляется.

    • Добавлено onStateJourneySharing() .

    • Удален onStateWaitingForPickup() , onStateDriverArrived() , onStateEnroute() и onStateEndofTrip() .

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

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

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

  • Увеличение камеры теперь включает в себя только активный маршрут и следующую путевую точку поездки (путешествующая точка, которая принадлежит поездке). Даже если оставшаяся нога видна, зум никогда не будет включать его. Ранее точка высадки была включена в зум, когда транспортное средство либо зарекомендовало себя, либо прибыли в пикап. Это больше не правда.

Улучшения

  • Заполнить оставшуюся вещество -точки нулевой точки с данными драйверов (оставшиеся список путевой точки возвращается от ConsumerTripCallback.onTripRemainingWaypointsUpdated и TripInfo.getRemainingWaypoints() .

  • Обновите все оставшиеся путевые точки ETA, когда ETA на первую путевую точку в списке изменяется.

  • Force повторно создает автокамеры только тогда, когда водитель прибывает в пикап. Ранее Autocamera сбрасывалась в допущение к каждому изменению состояния поездки. Autocamera по -прежнему включена по умолчанию. Autocamera не будет повторно, если новая активная поездка будет установлена ​​без свежего вызова для startTripMonitoring() .

v0.6.1 (26 июня 2019 г.)

Новые функции

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

API меняется

  • ConsumerController.getConsumerMapStyle() теперь возвращает ConsumerMapStyle а не Task<ConsumerMapStyle> .

  • Добавлен PolylineStyle.setZIndex() .

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

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

  • Фиксированное транспортное средство «мерцание» во время интерполяции анимации, когда обновления местоположения водителя находятся близко друг к другу.

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

  • Покажите активную маршруту полилинии над оставшимся маршрутом, когда они перекрываются.

Улучшения

  • Теперь разоблачайте класс Status GRPC неопубликованными методами.

v0.5.1.01 (17 мая 2019 г.)

Новые функции

  • Блюда к спине поддержки для обмена путешествиями.

API меняется

  • Новый класс ConsumerController .

PolylineType

Старая стоимость Новое значение
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

Старая стоимость Новое значение
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumperController

  • Теперь вы можете установить обратные вызовы для штатов, не въезжая в штат.
Метод Перезвонить
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) позволяет устанавливать язык, используемый в вызовах FleetEngine (например, для описаний точек пикапа).

Улучшения

  • Состояние выбора высадки теперь имеет выталкиваемую булавку.
  • Удаленная анимация камеры в состоянии INITIALIZE .
  • Заменил ManagedChannelBuilder с AndroidChannelBuilder .
,

Этот раздел содержит заметки о выпуске для потребителя SDK для Android.

2.3.0 (2 августа 2024 г.)

API меняется

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

  • Добавьте метод getServerTimeMillis() в VehicleLocation , чтобы определить время, когда обновление местоположения было получено Fleet Engine.

2.2.0 (7 мая 2024 г.)

API меняется

  • Добавлена ​​поддержка API для JetPack Compose Integration. Это экспериментальная функция. Для получения подробной информации об интеграции с JetPack Compose, обратитесь к своему представителю.

2.1.0 (17 января 2024 г.)

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

  • Исправляет сбой, который возникает, когда SDK инициализируется более одного раза в жизненном цикле приложения.

API меняется

  • Вводит метод для извлечения экземпляра GoogleMap , созданного SDK ( ConsumerGoogleMap.getGoogleMap() ).
  • Представляет API для извлечения экземпляров Marker , созданных SDK, для представления транспортного средства ( ConsumerController.getConsumerMarker() ).
  • Предводит API для получения прогнозируемых обновлений клиента для времени и расстояния во время обмена путешествиями ( ProjectedRouteEta ).

1.99.2 (3 ноября 2023 г.)

  • Исправляет сбой, который происходит, когда SDK инициализируется из удаленного процесса, отдельно от приложения.

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

  • Исправляет ошибку, которая заставляет первое этап обратной поездки, когда вторая нога проходит по одной и той же дороге.

Проблемы

  • ConsumerApi.initialize() вызывает исключение, если вы вызываете, когда экземпляр API уже существует. Чтобы обойти это, сначала вызовите ConsumerApi.getInstance() и оцените возвращенную Task , чтобы определить, существует ли уже экземпляр API.

2.0.0 (15 сентября 2023 г.)

Объявление: нарушение изменений

  • Минимальный требование уровня API обновляется с 21 до 23.

  • Обновления Maps SDK версии Требование от V17.0.0 до V18.1.0

  • Минимальное требование к стандартной библиотеке Kotlin обновляется с v1.6.10 до v1.9.0

  • Обновить версии зависимостей Google Play Services

    • Минимальное требование к версии библиотеки в библиотеке с минимальными играми обновляется от V18.0.1 до v18.2.0

    • Минимальная версия библиотеки с минимальными игроками обновляется от V18.0.0 до v18.2.0

    • Минимальное требование к версии библиотеки в библиотеке воспроизведения обновляется с v17.0.0 до v21.0.1

    • Минимальные задачи по вопросам игровых услуг.

  • Добавляет библиотеку Androidx.room: Room-Runtime с минимальными требованиями версии, установленной на v2.5.2

  • Обновить следующие версии зависимостей

    • Минимальные требования к версии библиотеки Android-Maps-Utils обновляются с V0.4.2 до v3.5.2

    • Минимальный com.google.android.datatransport: Требование версии Transport-Backend-CCT обновляется с v3.0.0 до v3.1.9

    • Минимальный com.google.android.datatransport: Требование к версии транспортировки обновляется с v3.0.1 до v3.1.9

    • Минимальный androidx.lifecycle: Жизненный цикл-экстенсионные требования версии обновляются с v2.0.0 до v2.2.0

    • Минимальный Androidx.lifecycle: Требование версии LifeCycle-Common-Java8 обновляется с v2.0.0 до v2.6.1

    • Минимальный androidx.appcompat: требование версии appcompat обновляется с v1.0.0 до v1.6.1

    • Минимальный Androidx.Fragment: требование к версии фрагментов обновляется с v1.0.0 до v1.6.1

  • Удаляет следующие ранее устаревшие API: ConsumerTrip , ConsumerTripCallback , ConsumerTripManager , ConsumerTripOptions . Они были заменены TripModel , TripModelCallback , TripModelManager и TripModelOptions .

  • Приложения, которые используют потребительский SDK, теперь должны иметь targetSdkVersion API 31 или более, compileSdkVersion API 33 или более.

  • Приложения, которые используют потребительский SDK, теперь должны включать поддержку библиотеки Java 8. См. https://developer.android.com/studio/write/java8-support для получения инструкций по обновлению.

  • Приложения, использующие Proguard или Dexguard, должны перейти на R8. См. https://developer.android.com/build/shrink-code для получения дополнительной информации.

  • Приложения, которые используют потребительский SDK, должны включать десугарирование. См. Https://developer.android.com/studio/write/java8-support#library-desugaring для инструкций.

  • Метод ConsumerApi.initialize() теперь бросает исключение, если его вызывают, когда уже создан экземпляр API. Task , возвращаемая ConsumerApi.getInstance() должна использоваться для определения того, есть ли экземпляр API, созданный заранее.

Объявление: аспекты API

  • Deprecates Trip.TripStatus and Trip.TripType annotation classes, adds TripInfo.TripStatus and TripInfo.TripType annotation classes to replace them.

    • As part of to this change, TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) is deprecated and TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) is added to replace it.

    • As part of to this change, TripInfo#getTripStatus() is deprecated, TripInfo#getCurrentTripStatus() is added to replace it.

    • As part of to this change, TripInfo#getTripType() is deprecated, TripInfo#getCurrentTripType() is added to replace it.

  • Deprecates Trip class.

Other Changes and bug fixes

  • Supports requesting the latest Maps SDK renderer. See New Map Renderer for details.

  • Provides Maps SDK range support from v18.1.0(inclusive) to v19.0.0(exclusive) versions.

  • Fixes "deadline exceeded" error for internal communications between SDK and Google backend.

  • Fixes rendering issue for small size screen and picture-in-picture mode.

Migration guide

1.99.1 (August 31, 2023)

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

  • Fixes crash that occurs when the SDK host activity or fragment is destroyed.

  • Fixes crash that occurs when the dimensions of the MapView are 0 (either height or width).

  • Fixes crash that occurs when projecting the vehicle location on the route polyline.

Improvements

  • Prevents the SDK from crashing when the host application is sideloaded, and the default visual resources aren't present.

1.99.0 (June 22, 2023)

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

  • Fixes rendering issue for small-size screen and for picture-in-picture mode.

  • Fixes vehicle flickers during journey sharing.

1.2.1 (June 7, 2023)

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

  • Fixes a bug that causes the vehicle to flicker during journey sharing.

1.2.0 (November 21, 2022)

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

  • Fixes bug that caused empty traffic to be reported in the onTripActiveRouteTrafficUpdated callback.

New features

  • "Traffic-aware polylines" is now generally available.

1.1.2 (October 27, 2022)

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

  • Addresses bug that cause the route polyline to disappear after a JourneySharingSession is started more than once for a TripModel .

Announcement: Freezing support for Android 5 (July 25, 2022)

For our v1.1.1 SDK version, we are providing an additional year of support for apps running on Android 5, for both API levels 21 and 22.

What this means:

  • Consumer SDK running on your Android apps will support a minimum Android 5 (API level 21) until June 30, 2023.

  • After June 30, 2023, we will support only Android API levels 23 and above. In other words, we will stop supporting Android API levels 21 and 22 across all SDK versions after that date. This means that bugs related to Android 21 or 22 in any SDK version (including 4.x) will not be fixed, and we do not guarantee that the SDKs will behave correctly.

v1.1.1 (July 25, 2022)

Dependency change

  • Downgrades the minimum supported Android API level to 21.

v1.1.0 (April 28, 2022)

  • Internal improvements.

v1.0.19 (March 17, 2022)

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

  • Fixed a memory leak in the ConsumerApi class.

v1.0.14 (November 30, 2021)

The minimum supported Android API level is now 23.

API changes

  • Changes to the ConsumerTrip and ConsumerTripManager classes.

    • Cleaned up some method names to make their meaning clearer, and to align with the iOS platform.
  • Changes to ConsumerTripCallback , ConsumerTrip and TripInfo .

    • Changed some class names to form parity with iOS. Introduced TripModel , TirpModelManager , and TripModelOptions to deprecate ConsumerTrip , ConsumerTripManager and ConsumerTripOptions .

    • Cleaned up some method names. Revised or added JavaDoc comments to methods to convey clearer meanings.

    • Improved error handling.

Styling customization

  • Deprecated legacy wrappers

    • MarkerStyleOptions and PolylineStyleOptions were deprecated and replaced by MarkerOptions and PolylineOptions , which are both shared with the Maps SDK.

Crash monitoring

  • Added crash detection and logging.

    • An addition was made to allow you to opt out of this functionality. This was done as a part of a larger Geo-wide effort for crash monitoring.

Authentication changes

  • Remove unnecessary methods from the Authentication interfaces.
    • Removed the ServiceType parameter.

v0.9.28 (May 18, 2021)

API changes

  • Updated all ConsumerTripCallback methods to use TripInfo as the parameter.
  • Added ConsumerTrip.isRefreshing() , which indicates whether ConsumerTrip is actively updating itself with fresh trip information from Fleet Engine.
  • Added ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() .
  • Added ConsumerTripCallback.onTripRemainingRouteUpdated() .
  • Replace Guava return types ( ImmutableSet , ImmutableList ) with java.util equivalent classes.
  • Package name changes:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

Implementation changes

  • Fixed a race condition where the SDK could crash from interactions with the map before it is ready.
  • The SDK no longer contains an unobfuscated copy of io.grpc .
  • Fixed a bug with flickering traffic polylines on certain devices. Traffic segments will now have rounded ends.

v0.9.15 (October 7, 2020)

API changes

  • This release introduces Traffic Aware Polylines . - Added TripInfo.getActiveRouteTraffic() and TripInfo.getRemainingRouteTraffic() .
    • Added ConsumerTripCallback.onTripActiveRouteTrafficUpdated() and ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() to indicate when traffic has changed.
    • Added PolylineStyleOptions for traffic customization ( setTrafficEnabled() , setTrafficColorNoData() , setTrafficColorNormal() , setTrafficColorSlow() , setTrafficColorTrafficJam() ).
    • Exposed PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION .
    • Added TripWaypoint.getTrafficData() .
    • Added TrafficData data type.
    • Added ConsumerController.hideAllSessions() . ConsumerController.showSession() no longer accepts null as an argument.

v0.9.9 (July 15, 2020)

API changes

  • This is a major change that introduces a modularized architecture with a clearer relationship between the data-only layer (for example, ConsumerTripManager ) and the user interface layer (for example, JourneySharingSession ). For information on migrating to the new architecture, see the Modularization Migration Guide . - The ConsumerTrip object is now obtained from ConsumerTripManager.getTrip() .
    • ConsumerTrip.unregisterCallback has been renamed to ConsumerTrip.unregisterTripCallback .
    • ConsumerTrip.isCallbackRegistered has been renamed to ConsumerTrip.isTripCallbackRegistered .
    • Added ConsumerTrip.setConsumerTripOptions() and ConsumerTrip.getConsumerTripOptions() .
    • Removed ConsumerTrip.setAutoRefreshInterval() .
  • Removed non-journey sharing APIs.
    • Removed vehicle density map.
    • Removed trip preview state.
    • Removed pickup selection state.
    • Removed dropoff selection state.
    • Removed the following marker types: SELECTED_PICKUP_POINT , SUGGESTED_PICKUP_POINT , HIGHLIGHTED_PICKUP_POINT , and SELECTED_DROPOFF_POINT .
  • Changed OnConsumerMarkerClickCallback and ConsumerMapReadyCallback from interfaces to abstract classes.
  • Added ConsumerController.getCameraUpdate() , ConsumerController.isAutoCameraEnabled() , and ConsumerController.enableAutoCamera() .
  • Removed the custom FAB and its associated methods ( ConsumerController.isMyLocationFabEnabled and ConsumerController.setMyLocationFabEnabled ).

Implementation changes

  • A ConsumerTripCallback , whether registered with or without a LifecycleOwner , no longer automatically unregisters on TripStatus.COMPLETE or TripStatus.CANCELED .
  • AutoCamera is now enabled by default and never reenables or disables itself. Previously, AutoCamera automatically reenabled on TripStatus.ARRIVED_AT_PICKUP and disabled itself when the user interacted with the map during journey sharing.
  • The following improvements have been made to journey sharing vehicle animation:
    • Journey sharing animation now handles the situation where a vehicle may legitimately travel back along an already-traversed route.
    • The vehicle will now straight-line animate instead of route interpolating between points when it is determined algorithmically to be appropriate.
  • FINE_LOCATION permissions are no longer required.

Другие изменения

  • Updated the following dependency versions:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

v0.9.1 (March 23, 2020)

API changes

  • Added TripInfo.getVehicleId() , TripInfo.getNumberOfPassengers() , TripInfo.getIntermediateDestinationIndex() , TripInfo.getTripActiveRoute() , and TripInfo.getTripRemainingRoute() .
  • Added options class used during ConsumerApi initialization that lets the FleetEngine address to be dynamically set. If the API is not called with a FleetEngine value, it attempts to fetch it from the Android manifest or else falls back to the default value.

Improvements

  • The route polyline is not displayed when the trip status is ARRIVED_AT_PICKUP .
  • Off-route vehicle tracking has been improved (requires DriverSDK 1.15):
    • Vehicle tracking does not snap the vehicle to the route when the vehicle drives past the pickup point.
    • Vehicle tracking enables displaying the vehicle off the road; for example, in unmapped parking lots.
  • The vehicle icon now updates when the driver's destination does not match the destination in Fleet Engine.

v0.8.6 (December 16, 2019)

API changes

  • Added TripInfo.getVehicleLocation() .

  • ConsumerMapView is no longer final.

Implementation changes

  • The active leg remaining distance is now calculated using server distance (driver reported + static route where applicable) instead of local snapping. This change produces more accurate remaining distance values.

Другие изменения

  • New dependencies required. See the .pom file for details.

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • Added logs for trip request latency.

  • Added logs for trip response errors.

Примечания

  • Since version 0.8.1, the Consumer SDK for Android ships as a jetified zip archive. For information about how to de-jetify it, see Jetifier: Reverse mode .

v0.8.1 (September 13, 2019)

New features

API changes

  • Added ConsumerController.disableAutoCamera() as the opposite function to centerMapForState() .

  • VehicleLocation.getUpdateTime() now returns a Long that represents the timestamp (in milliseconds).

  • Simplified the AuthTokenFactory interface to expose a single method for token generation. Changed AuthTokenFactory from an interface to an abstract class to enable backwards compatibility in Java7. This change is backward compatible, but the old methods for single service token generation are deprecated, and will eventually be removed.

Implementation changes

  • Assets now centered to icon center, eliminating shadow offset.

  • setState to JOURNEY_SHARING onStartTripMonitoring() instead of waiting for monitored Trip's status.

  • Always returns data for first trip data update, even when trip data is out of sync.

  • Added Android Map Utils as a provided dependency.

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

  • Fixed broken proguard export syntax for grpc keep.

v0.7.0 (August 7, 2019)

New features

  • Multidestination support for Journey Sharing.

API changes

  • New methods for ConsumerTripCallback .

    • onTripIntermediateDestinationsUpdated() .
    • onTripETAToNextTripWaypointUpdated() .
  • New ConsumerController methods.

    • getIntermediateDestinations() .
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations) .
  • New TripStatuses .

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION .
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION .
  • New TripWaypoint getters.

    • getETAMillis() .
    • getDistanceMeters() .
  • Added the TripInfo class.

    • You can obtain TripInfo for the active trip with ConsumerTripManager.getActiveTripInfo() .
  • Added WaypointType.INTERMEDIATE_DESTINATION .

  • Added MarkerType.TRIP_INTERMEDIATE_DESTINATION .

  • Created ConsumerMapState.JOURNEY_SHARING from merged ConsumerMapStates ENROUTE_TO_PICKUP , ARRIVED_AT_PICKUP , ENROUTE_TO_DROPOFF , and COMPLETE .

    • StateChangeCallbacks updated.

    • Added onStateJourneySharing() .

    • Removed onStateWaitingForPickup() , onStateDriverArrived() , onStateEnroute() , and onStateEndofTrip() .

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

  • Fixed a bug where route is not trimmed to the vehicle location when trip monitoring starts in the middle of an active trip (not at head of route).

  • Fixed a bug where trip callbacks are not invoked for listeners registered on the Tripmanager after the TripManager has already fetched trip data.

  • Camera zoom now includes only the active route and the next trip waypoint (waypoint that belongs to the trip). Even if the remaining leg is visible, the zoom will never include it. Previously, the drop-off point was included in the zoom when the vehicle was either enroute to pickup, or arrived at pickup. This is no longer true.

Improvements

  • Populate the zeroth remaining waypoint with Driver data (remaining waypoint list is returned from ConsumerTripCallback.onTripRemainingWaypointsUpdated and TripInfo.getRemainingWaypoints() .

  • Update all remaining waypoint ETAs when the ETA to the first waypoint in the list changes.

  • Force re-enable autocamera only when driver arrives at pickup. Previously, autocamera would reset to enabled for every trip state change. Autocamera is still enabled by default. Autocamera will not re-enable if a new active trip is set without a fresh call to startTripMonitoring() .

v0.6.1 (June 26, 2019)

New features

  • Carpool support for journey sharing.

API changes

  • ConsumerController.getConsumerMapStyle() now returns ConsumerMapStyle rather than Task<ConsumerMapStyle> .

  • Added PolylineStyle.setZIndex() .

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

  • Route animation now happens only when the route segment is in sync, resulting in an improved user experience.

  • Fixed vehicle "flickering" during animation interpolation when driver location updates are close together.

  • Fixed a bug where the vehicle starts at the head of the route instead of at its most updated location when trip monitoring starts in the middle of an active trip.

  • Display the active route polyline above the remaining route when they overlap.

Improvements

  • Now expose the gRPC Status class with unobfuscated methods.

v0.5.1.01 (May 17, 2019)

New features

  • Back-to-back support for Journey Sharing.

API changes

  • New ConsumerController class.

PolylineType

Old Value New Value
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

Old Value New Value
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • You can now set callbacks for states without entering the state.
Метод Перезвонить
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) allows you to set the language used in FleetEngine calls (for pickup point descriptions, for example).

Improvements

  • Dropoff selection state now has a draggable pin.
  • Removed camera animation in INITIALIZE state.
  • Replaced ManagedChannelBuilder with AndroidChannelBuilder .