Skip to content

Migration Guide 3.18

Migration SDK from Old Versions

This section provides a detailed description of API changes introduced or removed in recent SDK upgrades.
We strongly recommend reading this documentation when upgrading the SDK version to understand the differences and update your API calls accordingly.

Migration to Version 3.18.0

Delivers a trip match statistics API so your app can query per-user trip counts grouped by Bluetooth match reason and associated peripheral names for a date range (cloud; uses the current telematics user from the SDK).

Added getTripMatchStatisticsRequest() on the analytics client. Cloud GET /omniscore/v1/users/{userId}/trips/match-statistics with start_time / end_time (epoch seconds); telematics user is resolved in the SDK. Contextual coaching payloads are more tolerant of missing trip ID maps where applicable.

Kotlin

1
2
3
4
5
val request = driveMotionAnalyticsClient.getTripMatchStatisticsRequest()
  .withStartTime(start)
  .withEndTime(end)
  .build()
GetTripMatchStatisticsCall().execute(request) { result -> /* result.getResult() */ }

After a configurable on-trip delay, notifies the app when Bluetooth cannot be read during recording because phone Bluetooth is off, the app has no permission, or both, while the trip continues.

Override onBluetoothUnavailableDuringTrip(BTUnavailableEvent) on DriveMotionMonitorReceiver. The event includes tripId and BTUnavailableCauseType. Configure optional btUnavailableTripThresholdSec in DriveMotionConfig (default 120 seconds).

1
2
3
4
5
open class MyMonitorReceiver : DriveMotionMonitorReceiver() {
  override fun onBluetoothUnavailableDuringTrip(event: BTUnavailableEvent) {
    // event.tripId, event.cause
  }
}

Add SDK API for Bluetooth setup confidence analysis and autobind suggestions

Same contract as iOS: optional withAsset(assetId, assetContext) on getRecommendedPeripheralsRequest() to merge cloud latest recommendations with local. Response adds optional linkedPeripheral and tripStatistics; each Peripheral may include confidence metadata and isCloudRecommended.

1
2
3
enrollmentClient.getRecommendedPeripheralsRequest()
  .withAsset(assetId, assetContext)
  .build()