В этом разделе содержатся примечания к выпуску 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 г.)
Новые возможности
Поддержка ConsumerMapView .
Артефакты ODRD теперь поставляются в репозитории maven вместо zip-файла .aar. Дополнительные сведения см. в разделе Добавление потребительского SDK в ваше приложение .
Изменения 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
.