Android Driver SDK 4.0 Migration Guide
Stay organized with collections
Save and categorize content based on your preferences.
The Driver SDK for Android 4.0 release requires that you update your code
for certain operations. This guide outlines the changes and what
you'll need to do to migrate your code.
Package name change
The package name has changed from
com.google.android.libraries.ridesharing.driver
to
com.google.android.libraries.mapsplatform.transportation.driver
. Please
update references in your code.
Initializing the SDK
In earlier versions, you would initialize the Navigation SDK and then obtain
a reference to the FleetEngine
class. In Driver SDK
v4, initialize the SDK as follows:
Obtain a Navigator
object from the NavigationApi
.
NavigationApi.getNavigator(
this, // Activity
new NavigationApi.NavigatorListener() {
@Override
public void onNavigatorReady(Navigator navigator) {
// Keep a reference to the Navigator (used to configure and start nav)
this.navigator = navigator;
}
}
);
Create a DriverContext
object, populating the required fields.
DriverContext driverContext = DriverContext.builder(application)
.setProviderId(providerId)
.setVehicleId(vehicleId)
.setAuthTokenFactory(authTokenFactory)
.setNavigator(navigator)
.setRoadSnappedLocationProvider(
NavigationApi.getRoadSnappedLocationProvider(application))
.build();
Use the DriverContext
object to initialize the *DriverApi
.
Obtain the NavigationVehicleReporter
from the API object.
*VehicleReporter
extends NavigationVehicleReporter
.
Enabling and disabling location updates
In earlier versions, you would enable location updates after obtaining
a FleetEngine
reference. In Driver SDK v4, enable
location updates as follows:
When the driver's shift is finished, disable location updates
and mark the vehicle as offline by calling NavigationVehicleReporter.disableLocationTracking()
.
Error Reporting with StatusListener
ErrorListener
has been removed and combined with StatusListener
,
which may be defined like the following:
class MyStatusListener implements StatusListener {
/** Called when background status is updated, during actions such as location reporting. */
@Override
public void updateStatus(
StatusLevel statusLevel, StatusCode statusCode, String statusMsg) {
// Status handling stuff goes here.
// StatusLevel may be DEBUG, INFO, WARNING, or ERROR.
// StatusCode may be DEFAULT, UNKNOWN_ERROR, VEHICLE_NOT_FOUND,
// BACKEND_CONNECTIVITY_ERROR, or PERMISSION_DENIED.
}
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-03 UTC.
[null,null,["Last updated 2025-09-03 UTC."],[[["\u003cp\u003eDriver SDK for Android v4 requires code updates for operations like package name and initialization.\u003c/p\u003e\n"],["\u003cp\u003eThe package name has changed to \u003ccode\u003ecom.google.android.libraries.mapsplatform.transportation.driver\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eSDK initialization now involves obtaining a \u003ccode\u003eNavigator\u003c/code\u003e, creating a \u003ccode\u003eDriverContext\u003c/code\u003e, and initializing the \u003ccode\u003e*DriverApi\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eLocation updates are enabled and disabled using the \u003ccode\u003eNavigationVehicleReporter\u003c/code\u003e methods.\u003c/p\u003e\n"],["\u003cp\u003eError reporting is now handled through the \u003ccode\u003eStatusListener\u003c/code\u003e which replaces the \u003ccode\u003eErrorListener\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["The Driver SDK for Android 4.0 release requires that you update your code\nfor certain operations. This guide outlines the changes and what\nyou'll need to do to migrate your code.\n\nPackage name change\n\nThe package name has changed from\n`com.google.android.libraries.ridesharing.driver` to\n`com.google.android.libraries.mapsplatform.transportation.driver`. Please\nupdate references in your code.\n\nInitializing the SDK\n\nIn earlier versions, you would initialize the Navigation SDK and then obtain\na reference to the `FleetEngine` class. In Driver SDK\nv4, initialize the SDK as follows:\n\n1. Obtain a `Navigator` object from the `NavigationApi`.\n\n NavigationApi.getNavigator(\n this, // Activity\n new NavigationApi.NavigatorListener() {\n @Override\n public void onNavigatorReady(Navigator navigator) {\n // Keep a reference to the Navigator (used to configure and start nav)\n this.navigator = navigator;\n }\n }\n );\n\n2. Create a `DriverContext` object, populating the required fields.\n\n DriverContext driverContext = DriverContext.builder(application)\n .setProviderId(providerId)\n .setVehicleId(vehicleId)\n .setAuthTokenFactory(authTokenFactory)\n .setNavigator(navigator)\n .setRoadSnappedLocationProvider(\n NavigationApi.getRoadSnappedLocationProvider(application))\n .build();\n\n3. Use the `DriverContext` object to initialize the `*DriverApi`.\n\n4. Obtain the `NavigationVehicleReporter` from the API object.\n `*VehicleReporter` extends `NavigationVehicleReporter`.\n\nEnabling and disabling location updates\n\nIn earlier versions, you would enable location updates after obtaining\na `FleetEngine` reference. In Driver SDK v4, enable\nlocation updates as follows:\n\nWhen the driver's shift is finished, disable location updates\nand mark the vehicle as offline by calling `NavigationVehicleReporter.disableLocationTracking()`.\n\nError Reporting with StatusListener\n\n`ErrorListener` has been removed and combined with `StatusListener`,\nwhich may be defined like the following: \n\n class MyStatusListener implements StatusListener {\n /** Called when background status is updated, during actions such as location reporting. */\n @Override\n public void updateStatus(\n StatusLevel statusLevel, StatusCode statusCode, String statusMsg) {\n // Status handling stuff goes here.\n // StatusLevel may be DEBUG, INFO, WARNING, or ERROR.\n // StatusCode may be DEFAULT, UNKNOWN_ERROR, VEHICLE_NOT_FOUND,\n // BACKEND_CONNECTIVITY_ERROR, or PERMISSION_DENIED.\n }\n }"]]