Android
Last updated
Was this helpful?
Last updated
Was this helpful?
Added
Core: The SDK generates a unique installation identifier to detect if the same account is used on multiple devices. .
Changed
Core: DriveKit logs now include a summary of authorizations and sensor statuses to simplify analysis.
TripAnalysis: Improved the accuracy of trip cancellation reasons by adding a new cause, NO_GPS_DATA
, to cover cases where no GPS points are available.
Changed
Core: The WorkManager is not automatically initialized when the is disabled (it is initialized only if required).
Added
TripAnalysis: Added a link to the real-time tracking map in the accident data accessible via object.
Fixed
TripAnalysis: Manage a possible crash when the user revokes the location permission during a trip recording.
Added
BeaconUtils: Add configuration rules for minified applications.
Changed
Core: Update the internal networking manager.
Added
Changed
Fixed
TripAnalysis: Handle possible crash when the device has no GPS sensor.
Core: Fix rare ConcurrentModificationException errors.
Fixed
BeaconUtils: Address potential crashes that might occur during beacon scanning on certain Xiaomi devices.
Core: Fix a rare issue that occurs when fetching the previous app exit reason on devices running Android 11.
Added
Changed
Project: The minimum version supported by DriveKit is now Android 8.0 Oreo (API 26).
Changed
Core: Improved detection of diagnosis events related to smartphone turn-on and turn-off.
Changed
Fixed
Fixed
Deprecated
TripAnalysis: the object account
has been deprecated in PostGenericResponse
.
Fixed
Project: Improve migration code managing an occasional migration error occurring when the SDK is integrated into a minified application.
Fixed
Core: Prevent requests from using cache.
Core: Improve the way of deserializing objects from GSON.
Fixed
Project: Update ProGuard rules to fix minification issues.
Added
getCurrentStartMode()
and getCurrentTripStartDate()
methods on DriveKitTripAnalysis module are deprecated and will be removed at the end of 2025. Please use getCurrentTripInfo()
method instead.
Added
TripAnalysis: The getLastTripPoint(): TripPoint?
method is now deprecated and replaced by getLastTripPointOfCurrentTrip(): TripPoint?
. It avoids confusion with the new getLastTripLocation
method.
Changed
Fixed
Core: Prevent requests from using cache.
Fixed
Project: New ProGuard rules have been added to avoid obfuscation of useful classes. This update is important if you have enabled minification in your application.
Fixed
Core: In some rare cases, calling the methods enableLogging
/disableLogging
can interrupt the SDK initialization.
TripAnalysis: Avoid interruptions in trip recording that could be caused by a problem with the EncryptedSharedPreferences
library.
Fixed
Core: Better management of diagnosis data backup in case of changes in minification rules.
Changed
ProGuard rules have been added to handle enabled code minification in client app configuration.
DriverAchievement: The LEGACY RankingPeriod is deprecated and will be removed in early 2025.
Challenge: Challenge list sync service has been enhanced to be up to 20x faster.
Fixed
Core: Prevent requests from using cache.
Changed
Core: Updated version of the security-crypto
library to prevent ANR events on Android 12 devices.
Fixed
Core: AutoReset permission value was inverted in DKDeviceConfigurationListener
.
TripAnalysis: Fix of a rare crash that could occur when the iBeacon scan starts if the Bluetooth sensor has been turned off.
TripAnalysis: Fix a rare crash when the user Bluetooth device class is null during a phone call.
Changed
Changed
DriverAchievement: We have updated statistics of badges to get more details: acquired, remaining and total number of badges for each level (bronze, silver and gold).
Fixed
TripAnalysis: On rare occasions, an error in calculating the variance of the gyroscope can interrupt trip recording and collision detection.
Fixed
TripAnalysis: The bluetooth sensor could be unexpectedly turned off at the end of a trip for devices on Android 12 and below.
This is a major version of the DriveKit SDK.
There is no breaking changes, except the deletion of methods and properties already marked as deprecated for more than a year.
Added
Deleted
Core: The deprecated property listener
is now deleted.
TripAnalysis: The deprecated setVehicle(vehicle: Vehicle)
method is now deleted and replaced by setVehicle(vehicle: TripVehicle)
DriverData: Deprecated methods saveTrainTrip(…)
and getTimelines()
are now deleted.
Changed
Deleted
Core: The deprecated delegate
is now deleted.
DriverData: Deprecated methods saveTrainTrip(…)
and getTimelines()
are now deleted.
Fixed
Core: Prevent requests from using cache.
Changed
TripAnalysis: From this version, the callback tripPoint() is also triggered during the stopping state.
Fixed
Project: Better management of parallel synchronisation for trip list, vehicle list, challenge list and coaching message.
Changed
Project: Update Kotlin version to 1.8.22, Android Gradle Plugin to 8.1.4 and Gradle to 8.3.
DriveKit now requires JDK 17.
Added
TripAnalysis: Add the getTripResponseStatus()
method to ease the access to the status and data of a completed trip. See Get the trip response status.
Vehicle: Documentation of the main methods included in the DriveKit internal component Vehicle
Fixed
Core: Fix incorrect state value for AutoReset permission when DKDeviceConfigurationListener.onDeviceConfigurationChanged(event: DKDeviceConfigurationEvent)
callback is triggered: the isValid
returned value was inverted.
Fixed
TripAnalysis: On rare occasions, an error in calculating the variance of the gyroscope can interrupt trip recording and collision detection.
Changed
TripAnalysis: New log message to indicate when trip analysis is postponed because the smartphone has no internet connection.
TripAnalysis: Some TripListener
methods are now optional: tripPoint
, beaconDetected
, potentialTripStart
, crashDetected
and crashFeedbackSent
. If you don't use these methods, there's no need to override them.
Fixed
TripAnalysis: Improve Bluetooth device verification during a trip recording.
Added
Fixed
TripAnalysis: Fixed a crash that could occur on Android 14 if the location sensor is deactivated before the start of a trip recording.
TripAnalysis: In rare cases, IMU data vectors (pitch, roll and yaw) may have different sizes to GPS data vectors.
Changed
TripAnalysis: crashDetected()
callback can be called even if enableCrashFeedback
is disabled
Core: Improved logs with an information message if the Core, TripAnalysis or DriverData modules are initialized multiple times.
Update Gradle configuration to avoid overriding the sdkStateChanged
method in the TripListener
interface.
Fixed
TripAnalysis: Fix a crash that may occur if the location permission is revoked during a trip analysis.
TripAnalysis: The callback tripStarted
is now called when a trip StartMode is MANUAL.
Changed
Vehicle: Add Plug-in hybrid gasoline engine index.
DriveKitListeners or TripListeners are no longer stored as weak references. This change enables the registration of anonymous classes.
Fixed
TripAnalysis: Fixed a minor bug that blocked the simulation of a trip with a collision.
Added
Core: DriveKit detects critical changes that can disrupt trip recording (permissions status, sensors and user logout). This information is included in the diagnostic log file and shared with the DriveQuant platform.
Vehicle: New service to replace a vehicle.
Fixed
TripAnalysis: Check if background location is authorized on Android 14+ devices before starting a trip recording.
Breaking changes
TripAnalysis: In the DeviceConfigEvent
sealed class:
BLUETOOTH_SENSOR_STATE_CHANGED
has been renamed to BluetoothSensorStateChanged
GpsSensorStateChanged
has been added to monitor when GPS sensor has been turned on and off.
Changed
TripAnalysis: Upgrade Play Services Location to v21.0.1
Added
DriverData: The DriveData component includes detailed data describing the user's profile. The driver's profile is based on driving habits.
Breaking changes
The DKDay enum has been moved from TripAnalysis to Core.
Added
TripAnalysis: DriveKit can use the connection between the smartphone and an Android Auto system to initiate a trip recording.
Changed
TripAnalysis: Several TripListener
can now be added independently and after module initialization. This makes it easier to use multiple trip listeners in your project if you need more than one..
Changed
TripAnalysis: Improve vehicle configuration.
Fixed
TripAnalysis: Fixed TripPoint
incorrect distance
computation value in rare cases.
Added
DriverData: The timeline data has been extended to include the variables needed to display driving conditions: distance category of trips, weather, day/night trips and week/weekend trips.
Breaking changes
Fixed
TripAnalysis: Fixed a rare issue of concurrent access on the gyrometer sensor recording for the crash detection feature.
Core: Improve DriveKitLog content and management.
Fixed
TripAnalysis: Smartphones with facial recognition are better handled for the computation of the distraction score.
Added
TripAnalysis: Improve temporary save trip mechanism when a beacon or a Bluetooth device is required.
TripAnalysis: Logging of trip cancellation mode when the Bluetooth device is missing and improved detection of the Bluetooth device when a trip confirmation is in progress.
Changed
Core: Secure storage of sensitive data using EncryptedSharedPreferences
.
Core: Display an explicit error message in logcat when DriveKit is not correctly initialized.
DriverData: Trip synchronisation time was significantly reduced.
Changed
Project: The minimum version supported by DriveKit is now Android 6.0 Marshmallow (API 23).
DriverData: Add fuelSaving values into Timeline
Added
TripAnalysis: Add a method to get the startMode of the current trip
Changed
Fixed
TripAnalysis: Check ACTIVITY_RECOGNITION
runtime permission is granted by the user before initializing the auto start mode
Changed
Project: Update Play Services to 20.0.0
Added
TripAnalysis: New configuration to cancel or enable trip recording when the Bluetooth device paired with a vehicle is not connected to the smartphone.
Core: Add a function to delete a user account
Group: New module to manage driver’s groups
Breaking changes
Added
Permissions utils : Android 13 permission support. See the Notification Runtime Permission section.
TripSimulator: The trip simulator can emulate a bus trip to test the transportation mode detection service.
Changed
DriveKit is now targeting Android 13 (API level 33)
TripAnalysis: Added a listener the change of the state of the Bluetooth sensor (enabled/disabled)
Fixed
TripAnalysis: Fixed a rare glitch when recording gyroscope measurements on some Android smartphones
Changed
Vehicle: We have improved error messages and synchronisation in the case of deleted vehicles.
Changed
BeaconUtils: The module can now be configured to support multiple beacon types.
TripAnalysis: The beacon's battery level is measured at each trip.
Fixed
Core: Improve DriveKit initialization: the access
service is not called until the userId is not configured.
Changed
DriverData: Added speeding duration, speeding distance and ecodriving sub-scores into the timeline data.
DriverData: Added energy and energy consumption for electric vehicles.
Changed
TripSimulator: Update of PresetTrip distance and duration information.
Changed
TripAnalysis: Handle a crash that may happen when the device has rebooted and if DriveKit is not initialized.
Added
DatabaseUtils: Add a method on TransportationMode
to indicate whether or not it is an alternative travel mode.
Fixed
TripAnalysis: Fix a ConcurrentModificationException that may happen during gyroscope computation value.
Changed
TripAnalysis: Improved reverse geocoding of departure and arrival addresses.
Fixed
TripAnalysis: In Crash Detection, handle NaN
values in gyroscope variance computation.
Vehicle: Update vehicle in local database when changeBeaconToVehicle(…)
is called.
Changed
TripAnalysis: The "working hours" feature brings more flexibility and lets you choose to label as business or personal a trip performed during an unchecked day.
TripAnalysis: Improve phone distraction detection.
Trip analysis: The collection of GPS data around the collision detection event has been improved.
Fixed
All DriveKit components: Fix an issue when saving an existing trip in local database.
Fixed
Core: Fix a crash that can occur when retrieving DriveKitLog zip files at the end of the month.
Added
TripAnalysis: All DriveKit users can now get a built-in crash detection feature integrated in the Trip Analysis component. This function analyzes the motion sensors during the trip recording to detect a collision.
TripSimulator: Add a new trip with a crash to simulate an accident.
Changed
DatabaseUtils: Update Room library version to v2.4.1.
All DriveKit components: To better understand the SDK lifecycle and to help you check your integration we have enriched and improved the activity logs.
Added
TripAnalysis: add a working hours management feature to control the time period in which automatic trip recording is enabled.
Added
DriverAchievement: New phone call badge to encourage drivers to reduce distracted driving.
Added
DriverAchievement: Add calls in streaks.
Changed
Core: Activate logs by default.
Fixed
Trip Analysis: Manage cases when Nearby Devices permissions is not authorized yet.
Added
Core : Sensors availability are now returned in authentication service.
Driver Data : Add functions to manage manual trips.
Breaking changes
Fixed
Core : Handle nullable address locality in reverse geocoder
Changed
DriverData: Better management of reverse geocoding
Added
New driveKit Component to implement a driving challenge in your app.
Changed
The minimum version supported by DriveKit is now Android 5.0 Lollipop (API 21).
Fixed
Trip Analysis : improved initialization of localTripId when the application has been killed by a manufacturer battery optimization.
Fixed
Trip Analysis: Manage phone calls during StartingState
Added
Driver Data: Synchronize speeding data in local database
Changed
Trip Analysis: Optimized local database synchronization for new trip
Added
Driver Data: phone distraction indicators update (new scoring and call events)
Changed
Driver Data: Improved deleted trip synchronisation if the user is connected to multiple smartphones.
General : AndroidX libraries update.
Added
Trip Analysis: Retrieving new data for the identification of distracted driving.
Driver Data : Add function to declare transportation mode.
Driver Data : Synchronize maneuver and evaluation with trips.
Fixed
DriverData : Remove DriveQuant Google API Key in AndroidManifest.xml
Added
Driver Data: The driver synthesis data and timeline of scores can be synchronised and used from the Driver Data component.
Trip Analysis: It is now possible to add specific data within a trip's post
Added
Trip Simulator: We have introduced a new component able to simulate trips in order to help your mobile app testings
Added
Driver Achievement: A new ranking score (speed limit) can be displayed on the driver leaderboard.
Trip Simulator: We have introduced a new component able to simulate trips in order to help your mobile app testings
Trip Analysis: Handle an error that may occur when a trip is manually stopped
Changed
Driver Data: By default, the trip list shows only the trips made in vehicles. A configuration parameter enables the display of the trips detected in alternative transportation modes
Fixed
Trip Analysis: Handle an error that may occur when a trip is manually stopped
Changed
All DriveKit components are now compatible with Android 11
Fixed
Trip Analysis: In some cases vehicle is not correctly configured
Added
DriverAchievement: New feature Rankings
TripAnalysis: Enhancement of automatic trip recording by geozone detection
Added
TripAnalysis: New public method to check and manually repost trips
TripAnalysis: Improved detection of bicycle mobility
Added
DriverAchievement: New feature for collection of driving badges.
Vehicle: New feature to set-up a truck
Changed
TripAnalysis: Improve Bluetooth device detection check during the trip
Vehicle: Add new car brands
Fixed
Core: Update the refresh token mechanism
DatabaseUtils: Manage trips without phone distraction indicators
Fixed
Vehicle component: Vehicles synchronization now manages odometers' deleted references
TripAnalysis component: vehiclesConfigTakeOver parameter is correctly saved in SharedPreferences and reset when necessary
Changed
Core: Improve logging system
Added
New Vehicle component: Manage vehicle synchronization with local database, detection mode configuration of vehicle, and functions to pair a beacon or a bluetooth device to the vehicle
Core: Add log configuration to remove log from console
Changed
Trip Analysis: Update share position service with canceled events
Added
New Driver Achievement SDK with streak features
Added
Trip Analysis: Add optional sdkStateChanged method on TripListener
Fixed
Trip Analysis: Fix ItineraryStatistics parsing for day and weekDay fields
Added
Trip Analysis: Notification channel name and id of trip recording foreground notification are now configurable for device running Android 8 or higher
Trip Analysis: Add beacon detection for pre-Lollipop devices
Core: Logging system compatibilty with Android 10
Trip Analysis: Fix IllegalStateException when some error messages are null
Trip Analysis: Beacon verification can failed when only UUID and major is configure
Core: Authentication failed with some userId
Added a screen for displaying driving tips.
Add Driver Data SDK for Driver's trips synchronisation.
Add Driver Data UI for trip display.
Calling startTrip method may generate an exception
Trip Analysis SDK throws an exception when launched on Android virtual devices
Support of Android 10
Release version of the Trip Analysis SDK.
New interface to retrieve the detected beacon event before the start of the trip.
Add method to get the SDK recorder state.
Trip Analysis SDK is now available in beta version
TripSimulator: A no-op module is now available. Learn more .
TripAnalysis: the property used to check that the (isCrashDetectionAvailable
) returns False when the SDK is not configured.
TripAnalysis: Add methods to manage the .
TripAnalysis: Add callbacks to the to improve monitoring of trip recording states.
TripAnalysis: Clear trip metadata when DriveKit is .
TripAnalysis: handling a ForegroundServiceStartNotAllowedException
error which can occur even if are respected.
TripAnalysis: Add a new method getCurrentTripInfo()
to retrieve some information about the current trip. Follow this to learn more.
TripAnalysis: Add a new method to retrieve the arrival location of the last trip: getLastTripLocation()
. Follow this to learn more.
Project: The EncryptedSharedPreferences
library is no longer used in the SDK as it is .
TripAnalysis: The tripFinished(post: PostGeneric, response: PostGenericResponse)
's callback is now deprecated and replaced by tripFinished(result: TripResult)
. The makes it easier to understand the trip analysis result from our DriveQuant servers.
DriveKit is now targeting Android 15 (API level 35). It is recommended to check our and the .
TripAnalysis: Manage Full Screen Intent runtime permission which can be revoked by the for apps on Android 14+ devices that do not have calling or alarm functionalities. If you are using the Crash Detection Feedback feature, have a check about the section.
TripSimulator: Add the new TRIP_WITH_CRASH_2_STILL_DRIVING
dataset to simulate a trip with a confirmed accident after which the driver continues to drive. Learn more .
Project: The internal modules are now automatically initialized. It means that you no longer have to initialize the modules in the onCreate
method of your Application
class. Read more via the .
DriverData: Add new ignoreItemsWithoutTripScored
parameter for getDriverTimelines()
method. If set to true
, the returned timeline data will not contain items ( and ) where there are only unscored trips. Learn more .
TripAnalysis: In addition to phone compatibility, isCrashDetectionAvailable
now measures whether the accelerometer is working properly and whether access to the crash detection feature is enabled. .
DriverAchievement: New method to get the number of badges: total number, number of badges collected and number of badges remaining. .
Vehicle: DriveKit accepts new values for : Biofuel (6), Bi-fuel gasoline bioethanol (7), Dual-fuel gasoline NGV (8), Dual-fuel gasoline LPG (9), Not available (10) and Hydrogen (12).
Challenge : Update challenge list by adding number of registered and number of ranked users for a given challenge. The rank of the user is also provided. See .
Challenge: Update challenge detail by adding number of registered users for a given challenge. The booleans isRegistered and conditionsFilled has also been added. See .
Core: Add new DKDeviceConfigurationListener
to get informed when permissions and sensors status have changed. .
onDeviceConfigEvent()
method in TripListener
is deprecated and will be removed in a future version. Please use
instead.
DriveKit is now targeting Android 14 (API level 34). It is recommended to check and the Android .
TripAnalysis: We have simplified the message that informs that a trip has been cancelled. For that, a new method tripCancelled()
has been added in TripListener
()
TripAnalysis: Add allowBeaconTripStart
parameter to disable beacon trip start ().
Project: Remove the allowBackup
flag. Read on the official Android documentation
All DriveKit components support Android 13. It is recommended to check the .
TripAnalysis: Add method tripFinished() in TripListener which is called when a trip has been recorded by the SDK and sent to DriveQuant server for analysis. More details .
All DriveKit components now support Android 12. It is recommended to check the .
External libraries in DriveKit now require Java 8. If you run into any issues, please check the
Trip Analysis: The autostart feature supports Bluetooth vehicle detection. More detail .
Driver Data UI: Add setting to : primaryFont
Driver Data UI: Add setting to : enableDeleteTrip