This section contains release notes for the Driver SDK for Android.
v5.99.0 (September 20, 2024)
Bug fixes
- Fixed issue where drivers where receiving gRPC errors with code "INTERNAL" and a "Panic! This is a bug!" description. This will be rolled out progressively (starting from 0%) once the release has been integrated.
- Internal improvement to reduce location update connection errors especially when the device switches networks. This will be rolled out progressively (starting from 0%) once the release has been integrated.`
Dependency and configuration changes
- Remove dependency to
glide:cronet-integration
in the POM.xml
v5.0.0 (September 12, 2023)
Dependency and configuration changes
- Updated Navigation SDK to v5.x.
- Upgraded
minSdkVersion
to API 23. - Upgraded Kotlin version to 1.9.0.
- Added dependency on
Room.
* Apps that use Driver SDK must now have
targetSdkVersion
of API 31 or greater. - Apps that use Driver SDK must now enable Java 8 library support. See https://developer.android.com/studio/write/java8-support for instructions to update.
- Apps that use Proguard or Dexguard must migrate to R8. See https://developer.android.com/build/shrink-code for more information.
- Apps that use Driver SDK must enable desugaring. See https://developer.android.com/studio/write/java8-support#library-desugaring for instructions.
Bug fixes
- Fixed issue with disableLocationTracking synchronization.
- Introduced new DriverStatusListener interface that reports a cause in exception status updates.
- Fixed issue for drivers remaining stationary (available starting from v4.99.0).
v4.99.0 (August 9, 2023)
- Support a range of versions for NavSDK dependency. ** Supports v4.5.0 up to (but not including) v5.0.0.
- Prevent ETA from decreasing by itself when the vehicle is stationary. This change rolls out gradually as an experiment, so not all applications will see this change simultaneously.
v4.5.0 (May 12, 2023)
- Update Navigation SDK dependency to v4.5. Note that the group and artifact IDs for Navigation SDK have changed.
v4.4.3 (March 20, 2023)
Dependency change
- Upgrade Navigation SDK dependency to v4.4.1.
v4.4.2 (February 15, 2023)
Bug fixes
Improve network recovery time when the SDK encounters a temporary connection issue. This is an experimental fix.
Discard
UpdateVehicle
requests that only contain a "Raw" location.Fix race condition in the "Route Overview" ALPHA API.
v4.4.1 (November 18, 2022)
Bug fixes
- Fixed a bug in traffic upload logic.
Additional changes
- Internal improvements in request headers and status code reporting.
v4.4.0 (September 21, 2022)
Bug fixes
- Fixed a bug that prevented the "Driving with Google Maps" notification from being removed if the API instance was not cleared.
Dependency change
- Upgrade Navigation SDK dependency to v4.2.2.
v4.3.0 (August 24, 2022)
Internal improvements.
Announcement: Freezing support for Android 5 (July 21, 2022)
For our latest SDK version (v4.2.0), we are providing an additional year of support for apps running on Android 5, for both API levels 21 and 22.
What this means:
- Navigation SDK and Driver 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) won't be fixed, and we don't guarantee that the SDKs will behave correctly.
This notice overrides the Android 21 and 22 support freezing notice from June 21, 2021, and the Android 23, 24, and 25 support freezing from October 18, 2021.
v4.2.0 (June 8, 2022)
Dependency change
- Upgrade Nav SDK dependency to v4.1.3.
- Downgrades the minimum supported Android API level to 21.
v4.1.0 (April 28, 2022)
API updates
Renamed the
Task
object''sparentId
property totrackingId
. The old property still exists for now but is deprecated.
v4.0.0 (November 29, 2021)
The minimum supported Android API Level for this release is 23.
API updates
For this release, the Driver SDK for Android has been updated with the following changes.
VehicleStops API change
VehicleStop
objects now reference a List of
TaskInfo
objects instead of a List of
Task
objects. If you need Task state, then you are encouraged to track it in your
application code.
Added a new class:
TaskInfo
Replaced
VehicleStop
'sgetTasks
function with thegetTaskInfoList
function.Replaced
VehicleStop.Builder
'ssetTasks
function with thesetTaskInfoList
function.
Crash monitoring
Crash monitoring and reporting has been added to help improve SDK stability.
This feature is enabled by default, but you can disable it if you call
setAbnormalTerminationReportingEnabled()
and pass it a value of false
before
you initialize the SDK.
- Added the
setAbnormalTerminationReportingEnabled
function toDriverApi
.
Async getRemainingVehicleStops
- Changed
DeliveryVehicleReporter
'sgetRemainingVehicleStops
function to return a Future<List<VehicleStop>> instead of a List<VehicleStop>.
Authentication
Removed unnecessary properties from the AuthTokenContext
interface.
ServiceType
has been deprecated. You now only need to get claims for the
included vehicle ID and task ID, rather than relying on ServiceType
.
Removed
ServiceType
fromAuthTokenContext
.Removed
getServiceType()
fromAuthTokenContext
.Removed
setServiceType
fromAuthTokenContext.Builder
.
October 18, 2021 - Freezing support for API Level 23, 24 and 25
Read October 18 announcement
In response to changes in our internal dependencies, Android API Level 23, 24, and 25 (Android 6, 7.0 and 7.1) won't be supported in new versions of the Navigation and Driver SDKs for Android, beginning in the third quarter of 2022.
Navigation and Driver SDKs for Android versions released beginning in the third quarter of 2022 will only support devices running a minimum of Android API Level 26.
App versions built with v4.x or lower of the Navigation and Driver SDKs for Android will continue to work on devices running Android API Level 25 and below.
v3.0.4 (July 28, 2021)
Features
With this release, the Driver SDK is officially separated from the Navigation SDK. See the migration guide for details.
API updates
Added the following methods:
RidesharingDriverApi.getDriverSdkVersion()
Stability and bug fixes
Report PERMISSION_DENIED
errors instead of classifying them as connection
errors.
Deprecation announcement (June 21, 2021)
This announcement describes deprecations to the Driver SDK for Android and Navigation SDK for Android as of the date listed above. This announcement was also sent out as a Mandatory Service Announcement (MSA) to affected customers.
Nav/Driver SDK for Android will become Navigation SDK for Android v3.x and Driver SDK for Android v3.x for Android (split binaries)
To simplify customer integration and accelerate our ability to deliver useful features, we’re splitting Navigation SDK for Android and Driver SDK for Android into two different binaries:
- Navigation SDK for Android, which will provide navigation/routing functionality for your drivers.
- Driver SDK for Android, which will allow you to leverage Fleet Engine stateful web services for trip or task progress and allocation.
Please note that Driver SDK for Android has a required dependency on Navigation SDK for Android for core routing functions.
What are the changes?
The major changes in v3 are:
- Two binaries rather than one.
- Clearer package definitions for Driver SDK for Android classes.
- Navigation SDK for Android includes the Maps SDK for Android as
part of the packaging (as of Navigation SDK for Android v2).
- This enables maps and nav features to co-exist on the same map (such as drawing polylines on a NavigationView) and reduces memory usage since a single map is used instead of two.
- Navigation SDK for Android 3.0 lacks full feature parity with the Navigation SDK for Android, but v3.2 will resolve most issues here. See What can I do & when? for more details.
- Logging that will make it easier for us to debug issues you might encounter.
The following methods have also been removed in v3, having been previously marked as deprecated and for which an alternative solution already exists:
- The following Nav/Driver SDK methods were deprecated in v1.16, released on
Aug 10, 2020, and have been removed in v3.0:
Waypoint#fromLatLng(*)
Waypoint#fromPlaceId(*)
Navigator#startGuidance(resumeIntent)
NavigationApi#initForegroundServiceManager(*)
- For completeness and clarity, note that a number of methods were removed in the v1 to v2 transition. Most of these were consolidations of duplicate classes between Navigation SDK for Android and the Maps SDK for Android. Please see the migration guide to better understand these changes.
Driver SDK for Android and Navigation SDK for Android v1.x deprecation
Nav/Driver SDK v1 was released in 2018, and with our v3 versions soon to be released, it’s time to deprecate v1 to avoid the unsustainability of supporting many major versions.
The time saved by not having to support this additional version will allow us to better support the latest major version and build more features that are important to our customers.
Thus, Nav/Driver SDK v1.x is now deprecated and will no longer be maintained after June 21, 2022.
Please take a moment to see how deprecations in SDK versions work.
Navigation and Driver SDK Android 21 and 22 end of support
Read revoked announcement
The upcoming v4.0 of Navigation SDK for Android and Driver SDK for Android will support a minimum [Android 6.0 (API level 23)](https://developer.android.com/studio/releases/platforms#6.0){: .external}. The current minimum supported version is Android 5.0 (API level 21). We forecast releasing v4.0 in Q4 2021. This means:
- App versions built with versions earlier than v4.x will continue to work on Android 21 and 22 devices. Your driver apps that have integrated our current SDKs will continue to work on devices running Android 21+. This is the same as before.
- App versions built with Driver SDK for Android and Navigation SDK for Android v4.x (targeted for Q4 2021, subject to change) and after won’t be able to be installed on devices running Android 21 and 22. v4.x will run on minimum Android 6.0 (API level 23), so versions of your app built with an the forthcoming v4.x can only be received by drivers with devices that have Android 23+. To reiterate, this means that both our SDK-related changes and any app changes you’ve made won’t reach drivers with devices running Android 21 and 22.
The versions of Navigation SDK for Android v3 and Driver SDK for Android v3 that you will want to upgrade to are explained in the following table along with when they’ll be available.
Which Driver platform features do you use? | Do you use these capabilities? | Then the first versions available that you should upgrade to are... | Expected Availability (subject to change) |
Migration Links |
---|---|---|---|---|
Navigation only (NavSDK methods) |
No | NavSDK v3.0.1 | Now | Guide |
Yes | NavSDK v3.5 (projected) | Sep 2021 | ||
Navigation and Fleet Engine Tracking (NavSDK and DriverSDK methods) | No | Nav SDK v3.0 and Driver SDK v3.0 | Driver v3.0 migration guide available at release | |
Yes | NavSDK v3.x and DriverSDK v3.0 |
To continue using the removed methods, you may stay on v1.x, but without expectation of support or maintenance after June 21, 2022 (see next section).
We recommend you migrate to v3.x. This means:
* The last release of v1.x will occur on Q4 2021 (and thus v1 is “feature frozen” from then).
* This last release can be patched for 6 months thereafter, until June 21, 2022. After this time, we won't be able to respond to bug or feature requests for v1.x.
Please take a moment to review the following table and the [migration guide](/maps/documentation/navigation-sdk-android/v2/migration) in order to help you navigate these changes.
What can I do by when?
If you're currently on... | Do you use these capabilities? | To upgrade now | To upgrade in Sep 2021 | Migration Links |
---|---|---|---|---|
v1.x (not using FleetEngine.java / Driver functionality) |
No | NavSDK v3.0 | Guide | |
Yes | No option | NavSDK 3.x | ||
v1.x (using FleetEngine.java / Driver functionality) |
No | No option | NavSDK 3.x + DriverSDK 3.x |
The guide above, plus the Driver v3.0 migration guide available at release. |
Yes |
We’d recommend that you notify your drivers with devices on Android 21 and 22 to upgrade to a newer version of Android (minimum Android 6.0) before you integrate Driver SDK for Android and Navigation SDK for Android version v4.x and above into your driver app.
v1.15.3 (October 9, 2020)
API updates
- The Driver SDK now subscribes to the Navigation SDK for traffic updates, which are sent to the Fleet Engine API.
Stability and bug fixes
- Fixed a gRPC runtime crash.
v1.15.2
Features
Added the ability to stop persistent notification. If location reporting is
stopped in the Fleet Engine instance, guidance is stopped in Navigator
, all
navigation listeners are unregistered, and NavigationFragment
or
NavigationView
is paused.
Stability and bug fixes
- Fixed a bug which caused an exception to be thrown if the Fleet Engine instance was cleared.
v1.15.1 (May 12, 2020)
Features
Preliminary analysis of 1.15.0 data indicated significant improvements in stable location reporting (reduction of “stuck” locations). This patch fix allows the improved location reporting to continue. The ANR issue was unrelated to these improvements.
Stability and bug fixes
- Fixed a bug which sometimes would cause a straight line at the beginning of the route to be shown in the consumer app.
- Fixed a bug which could result in an ANR when locations are being reported
by the SDK. This resulted from
onArrival()
improvements that were susceptible to lock contention. We were able to reproduce ANRs reliably under some circumstances and were able to verify that the fixes solved the problem. The modified test app for producing the ANRs ran for eight hours without an ANR after the fix.
v1.15.0 (March 23, 2019)
Features
- Introduced navigation guidance status on start, off-route, arrival events to improve vehicle location tracking.
- Added the ability to continue getting road-snapped locations independent of the nav state.
- Added additional information about pre-road-snapped locations such as accuracy.
Stability and Bug fixes
- Increased the minSdkVersion for navsdk to 19.
- Fixed a bug that caused lat/lng Waypoint names to not be honored when server-side reverse geocoding fails.
v1.14.2 Release (Feb 2, 2019)
Features
- Prevents the DriverSDK from sending 0,0 locations to Fleet Engine (better journey sharing and allocation location inputs).
- Additional logging for improving stuck location issues and reducing fallbacks for journey sharing.
- Ignore repeated calls to
setLocationReportingInterval()
unless the interval changes. - Updated javadocs for the
setReportingInterval()
method with the objective of discouraging repeated calling of this method at a high rate relative to the intervals being used. - Api 29 location reliability improved.
v1.13.0
Stability and bug fixes
- Adds a dependency on okhttp that clients will have to add to their gradle builds.
v1.11.7 (October 18, 2019)
Stability and bug fixes
- Location updates now continue after
onArrival()
fires for a given destination. - The default notification (a constant string in Free Nav mode) matches the color scheme set for the navigation notifications. For more information, see Shared Persistent Notifications.
- Addressed an issue where a delayed location update event could cause a spurious location update, causing artifacts such as a straight line at the beginning of a route.
v1.11.6 (October 04, 2019)
API updates
- Introduced a series of changes that ensure that the Driver SDK resumes location updates quickly after a network failure. Once the network connection has been restored, location updates start again on the next scheduled location update.
Stability and bug fixes
setVehicleState()
now returns immediately. Updating FleetEngine now occurs on a background thread. Addresses an Application Not Responding (ANR) issue.- Fixed an issue that was causing journey sharing routes to display as a straight line using older versions of the Consumer SDK. Ensures that no one-off waypoints are added to the route by the Driver SDK.