Get started
Prerequisite
Before starting DriveKit Driver Data integration, make sure that you have initialized DriveKit.
If you use DriveKit Driver Data without having initialized DriveKit, an exception will be generated and the SDK will not work in your application.
Integration
Get module from repository
To add Driver Data module to your app, add the following line to your dependencies in your application build.gradle file:
dependencies {
implementation 'com.drivequant.drivekit:drivekit-driver-data:$drivekit_version'
}Initialization
If you have disabled the SDK auto-initialization, an initialization phase is required to use the functions offered by the Driver Data component. To initialize Driver Data component in your app, you must call the initialization method in onCreate method of your application class.
fun initialize()Get driver trips
To get Driver trips, you have to call the following method:
SynchronizationType can have 2 values:
DEFAULT: if this value is used, the SDK will try to synchronize local trips with DriveQuant backend to get new trips or modified trips, and then return the trip list via the completionHandler.CACHE: if this value is used, no synchronization will be performed and only trips previously synchronized will be return via the completionHandler.
An implementation of TripsQueryListener must be provided in order to retrieve trips.
The status in onResponse have one of the following values:
NO_ERROR: Synchronization has been successfully performed.CACHE_DATA_ONLY: SynchronizationType has been set toCACHE.FAILED_TO_SYNC_TRIPS: Synchronization has failed, only trips previously synchronized are returned.SYNC_ALREADY_IN_PROGRESS : Another trip list synchronization is already in progress
The second argument of the onResponse method is a list of Trip objects.
Example:
Get specific trip
To get a specific trip, you have to call the following method:
The itinId parameter is the unique identifier for a trip.
An implementation of TripQueryListener must be provided in order to retrieve the trip.
When you call this method, you will get trip data and trip safety events. If safety events are not synchronized locally for the trip, a synchronization with DriveQuant backend will be performed and then, the trip will be returned with safety events synchronized.
TripSyncStatus can have the same value as above and the value FAILED_TO_SYNC_SAFETY_EVENTS if the safety events synchronization failed.
The second argument of the onResponse method is the requested Trip object, if exists.
Example:
Get trip road data
To get road data of the trip (latitude, longitude), you have to call the following method:
An implementation of RouteQueryListener must be provided in order to retrieve the trip.
RouteStatus can have 2 values:
NO_ERROR: The trip has been successfully retrieved.FAILED_TO_RETRIEVE_ROUTE: Route has not been synchronized.routeparameter will benull.
Example:
Delete a trip
To delete a trip, you have to call the following method:
The itinId parameter is the unique identifier for a trip.
Example:
Declare a trip made as passenger
When a trip is analyzed and the detected transportation mode is car, truck, or motorcycle, it is by default attributed to the driver. However, in some cases, the data may come from a passenger's smartphone.
In such cases, it is possible to indicate that the analyzed trip was recorded by an occupant of the vehicle who was not the driver. This section describes the method used to declare a trip as having been made as a passenger.
With this method, you can add a feature to your application that allows the user to declare that they were not the driver of the vehicle.
When a user declares that a trip was made as a passenger, it will not modify any scores related to the trip.
To declare a trip as a passenger with a comment, call the following code:
The method takes the following parameters:
itinId
String
Unique trip identifier
mode
DriverPassengerMode
Possible value: DRIVER or PASSENGER.
comment
String
The user can add a comment of up to 120 characters.
The method returns a UpdateDriverPassengerModeStatus enum with the possible values:
SUCCESS
The passenger status has been successfully updated and local trip data is also updated.
USER_NOT_CONNECTED
The user is not yet connected to DriveKit.
INVALID_ITINERARY_ID
The itinerary identifier does not exist. Update is not taken into account and local trip data is not updated either.
INVALID_TRANSPORTATION_MODE
The trip was made with alternative transport. Update is not taken into account and local trip data is not updated either.
COMMENT_TOO_LONG
The comment exceeds 120 characters. Update is not taken into account and local trip data is not updated either.
FAILED_TO_UPDATE_MODE
An error has occurred, for example if the user has no network. Update is not taken into account and local trip data is not updated either.
Get driver synthesis
To get driver synthesis data, you have to call the following method:
An implementation of SynthesisQueryListener must be provided in order to retrieve synthesis data.
SynthesisStatus in the callback can have 3 values:
NO_ERROR: Synchronization has been successfully performed.CACHE_DATA_ONLY: SynchronizationType has been set to cache.FAILED_TO_SYNC_SYNTHESIS_CACHE_ONLY: Synchronization has failed, only data retrieved during the last synchronisation are returned.
Example:
Get driver timelines
To get driver timelines, you have to call the following method:
periods
DKTimelinePeriod
Get timeline data in a specific period of time.
Possible values are : WEEK, MONTH, YEAR.
synchronizationType
SynchronizationType
Define the source of the timelines data you want to retrieve.
Possible values are:
CACHE: No sync will be performed and the data retrieved during the last sync will be returned via the callback.
DEFAULT: the SDK will try to synchronize timelines with DriveQuant backend and then return them via the callback.
ignoreItemsWithoutTripScored
Boolean
If set to true, the returned timeline data will not contain items (DKAllContextItem and DKRoadContextItem) where there are only unscored trips.
The TimelineSyncStatus enum values are:
CACHE_DATA_ONLY: SynchronizationType has been set to CACHE.NO_ERROR: Sync has been successfully performed.FAILED_TO_SYNC_TIMELINE_CACHE_ONLY: Sync has failed, only data retrieved during the last sync are returned.NO_TIMELINE_YET: Sync has been successfully performed and there is currently no timeline.
The second argument in the callback is a list of DKDriverTimeline object, one per requested period.
Get driver profile
To get driver profile, you have to call the following method:
SynchronizationType can have 2 values:
DEFAULT: if this value is used, the SDK will try to synchronize the driver profile with DriveQuant backend and then return it via the completionHandler.CACHE: if this value is used, no synchronisation will be performed and the data retrieved during the last synchronisation will be returned via the callback.
DKDriverProfileStatus in the callback can take 4 values:
SUCCESS: Synchronization type has been successfully performed.FAILED_TO_SYNC_DRIVER_PROFILE_CACHE_ONLY: Synchronisation has failed, only data retrieved during the last synchronisation is returned.NO_DRIVER_PROFILE_YET: Synchronisation has been successfully performed and there is currently no driver profile for this user.FORBIDDEN_ACCESS: Your team doesn’t have access to this data.
The second argument in the callback is the DKDriverProfile object requested.
Example:
Last updated
Was this helpful?

