AI-generated Key Takeaways
- 
          Before utilizing the Driver SDK, ensure the Navigation SDK and Driver SDK are initialized by obtaining a Navigatorobject and creating aDriverContext.
- 
          The DriverContextrequires your Google Cloud Project ID and other identifying information to establish communication with Fleet Engine.
- 
          Initialize the specific Driver API, such as RidesharingDriverApi, using the createdDriverContextfor access to relevant functionalities.
- 
          Obtain the appropriate VehicleReporterfrom the initialized API to enable vehicle tracking and reporting within your application.
- 
          The Driver SDK utilizes SSL/TLS for secure communication and may require a SecurityProviderpatch for older Android API versions.
Before using the Driver SDK, you must first initialize the Navigation SDK and Driver SDK following these steps:
- Obtain a - Navigatorobject from the- NavigationApi.- Java- 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; } } );- Kotlin- NavigationApi.getNavigator( this, // Activity object : NavigatorListener() { override fun onNavigatorReady(navigator: Navigator) { // Keep a reference to the Navigator (used to configure and start nav) this@myActivity.navigator = navigator } }, )
- Create a - DriverContextobject, populating the required fields. To initialize the- DriverContextobject, you must enter the Project ID of your Google Cloud Project as the- providerId. For information on setting up the Google Cloud Project, see Create your Fleet Engine project.- Java- DriverContext driverContext = DriverContext.builder(application) .setProviderId(providerId) .setVehicleId(vehicleId) .setAuthTokenFactory(authTokenFactory) .setNavigator(navigator) .setRoadSnappedLocationProvider( NavigationApi.getRoadSnappedLocationProvider(application)) .build();- Kotlin- val driverContext = DriverContext.builder(application) .setProviderId(providerId) .setVehicleId(vehicleId) .setAuthTokenFactory(authTokenFactory) .setNavigator(navigator) .setRoadSnappedLocationProvider(NavigationApi.getRoadSnappedLocationProvider(application)) .build()
- Use the - DriverContextobject to initialize the- *DriverApi.- Java- RidesharingDriverApi ridesharingDriverApi = RidesharingDriverApi.createInstance(driverContext);- Kotlin- val ridesharingDriverApi = RidesharingDriverApi.createInstance(driverContext)
- Obtain the - RidesharingVehicleReporterfrom the API object. (- *VehicleReporterextends- NavigationVehicleReporter.)- Java- RidesharingVehicleReporter vehicleReporter = ridesharingDriverApi.getRidesharingVehicleReporter();- Kotlin- val vehicleReporter = ridesharingDriverApi.getRidesharingVehicleReporter()
Notes on SSL/TLS
Internally, the Driver SDK implementation uses
SSL/TLS to communicate securely with the Fleet Engine service. Android API
versions 23 or
earlier may require a SecurityProvider patch to communicate with the
server. For more information about working with SSL in Android, see
Security GMS Provider.
The article also contains code samples for patching the security provider.