7.1.0
| Android SDK | iOS SDK | 
| 10.1.0 | 10.1.0 | 
7.0.4
- Fix: Restricted main thread access for debug logger in iOS
7.0.3
| Android SDK | iOS SDK | 
| 10.0.3 | 10.0.4 | 
- Support for debug logger in RN
- iOS manifest update changes here
- Bug fixes for Android here
7.0.2
- Generated types for React Native Zendrive module.
7.0.1
- Upgraded Kotlin to 1.7
- Gradle version upgraded to 8
- Improved AWS SQS logging
7.0.0
| Android SDK | iOS SDK | 
| 10.0.0 | 10.0.0 | 
- Support for Android 14 (API Level 34)
- Support for iOS 17
- Collision detection improvement for Android
- Vehicle tagging improvement for iOS
6.2.1
- Fix: iOS permissions module: location permission returned true when permission was set to while in use
6.2.0
| Android SDK | iOS SDK | 
| 9.2.0 | 9.2.0 | 
- Capture Battery Optimisation Status (for Android)
- New DvP Population Model On the Edge
- New API for IQL Publishers (for iOS)
- Distracted Driving Enhancements
- iOS Invalid Trip Improvement
- Improved Collision Detection Support for Low-end Android Devices
- (RN Specific) Change in return type of isAutoTripDetectionEnabled()
- More information can be found here
6.1.0
| Android SDK | iOS SDK | 
| 9.1.0 | 9.1.0 | 
- Speed Reduction for Automatic Collision Notification
- Backward Compatibility of Sensor Fusion
- New iOS Crash Detection Feature
- More information can be found here
- Additional step needed for running the iOS build. Refer to iOS installation guide
6.0.2
| Android SDK | iOS SDK | 
| 9.0.3 | 9.0.3 | 
- Fixes for Android 13 support.
- IQL improvements.
- Fix for location permission.
- Support for react native 0.7.
6.0.0
| Android SDK | iOS SDK | 
| 9.0.0 | 9.0.0 | 
- Improved support for XCode 14 (iOS16).
- Support for Android 13.
- FNOL now supports low severity collisions.
- Improvements to event detection.
- SDK error logging and new logHeartbeat API (iOS only).
- Miscellaneous fixes.
5.3.2
- Fix for phoneuse - soft distraction event.
- Partial resolution for occational ghost trips.
- Fix for play store warning for apps using HMS variant of SDK.
5.3.1
- Removed preinstallscript frompackage.jsonto make the build compatible with Windows.
5.3.0
| Android SDK | iOS SDK | 
| 8.3.0 | 8.3.2 | 
5.2.0
| Android SDK | iOS SDK | 
| 8.2.0 | 8.2.0 | 
- Pause trip tracking has been introduced in this version of the SDK.
- pauseAutoDriveTracking(pausedTillTimestamp)- Stops auto trip tracking till the timestamp specified.
- resumeAutoDriveTracking()- Resumes auto trip tracking
- isAutoTripTrackingPaused()- Check the status of the SDK.
- Beacon based trip start has now been introduced in Android.
- addBeacon,- removeBeacon&- getAllRegisteredBeacons- Are the various methods using which we can access this feature.
- Fix bug: permission errors changed from "SNAKE_CASE" to "kebab-case".
5.1.0
- HMS variant updated to use 8.0 features.
- Fix bug: updated nullable intent type to non nullable intent in brandhelper.kt
5.0.2
- Fix bug: added missing error definition
5.0.1
- Fix bug: added missing error definition
5.0.0
| Android SDK | iOS SDK | 
| 8.0.0 | 8.0.0 | 
- adds support of iOS 15 & Android 12.
Android Change
- Extrapolated Distance details in DriveInfo. More details can be found here
4.2.1
- Fix bug: compile issue for apps running react-native version 0.61.5 and below
4.2.0
| Android SDK | iOS SDK | 
| 7.2.1 | 7.2.1 | 
- adds following error codes to ZendriveVehicleTaggingErrorCode enum
export enum ZendriveVehicleTaggingErrorCode {
  
  INVALID_ZENDRIVE_VEHICLE_BEACON = 'invalid-zendrive-vehicle-beacon',
  BEACON_NOT_ASSOCIATED = 'beacon-not-associated',
  ASSOCIATED_VEHICLE_BEACON_CONFLICT = 'associated-vehicle-beacon-conflict',
  MULTIPLE_UUID_ASSOCIATION_ERROR = 'multiple-uuid-association-error',
  BLE_SCAN_NOT_SUPPORTED = 'ble-scan-not-supported',
  BEACON_SCAN_ALREADY_IN_PROGRESS = 'beacon-scan-already-in-progress',
  BLUETOOTH_NOT_AVAILABLE = 'bluetooth-not-available',
  BLE_SCAN_INTERNAL_ERROR = 'ble-scan-internal-error',
  LOCATION_ERROR = 'location-error'
}
- Following beacon related methods are provided in Zendrive module
- associateBeacon
- dissociateBeacon
- getAssociatedBeacons
- getNearbyBeacons
- getNearbyBeaconsWithRange
- isTaggedByBluetooth
- isTaggedByBeacon
 
const vehicleId = 'some_vehicle_id';
const uuid = '123';
const minor = 1;
const major = 1;
await Zendrive.getNearbyBeacons(uuid);
await Zendrive.getNearbyBeaconsWithRange(uuid, major, minor);
await Zendrive.associateBeacon({
  vehicleId: vehicleId,
  beacon: {
    uuid: '123',
    major: 1,
    minor: 1,
  },
});
await Zendrive.dissociateBeacon(vehicleId);
const associatedBeacons = await Zendrive.getAssociatedBeacons();
associatedBeacons.forEach((item) => {
  
  
  console.log(`uuid: ${item.vehicleId}`);
  console.log(`beacon: ${item.beacon}`);
});
const isTaggedByBluetooth = Zendrive.isTaggedByBluetooth(driveInfo);
console.log(isTaggedByBluetooth); 
const isTaggedByBeacon = Zendrive.isTaggedByBeacon(driveInfo); 
Android Changes
- Support HMS variant devices
Steps to build HMS variant
- Add a new build type for HMS in app/build.gradle
buildTypes {
    
    hmsRelease {
        initWith release
        applicationIdSuffix '.hms'
        matchingFallbacks = ['debug', 'release']
    }
}
- Also add the below code to app/build.gradle
if (getGradle().getStartParameter().getTaskRequests().toString().contains("HmsRelease")) {
    rootProject.ext.rnzendrive = [
        useHmsVariant: true
    ]
} else {
    rootProject.ext.rnzendrive = [
        useHmsVariant: false
    ]
}
- Run the gradle task installHmsReleaseto build the apk for HMS variant app
iOS Changes
- Extrapolated Distance details in the DriveInfo
export type DriveInfo = {
  
  extrapolationDetails?: ZendriveExtrapolationDetails,
};
4.1.0
| Android SDK | iOS SDK | 
| 7.1.0 | 7.1.0 | 
- getBluetoothPairedDevicesmethod is provided in Zendrive module. While this method lists all paired blueooth devices on Android, the behavior on iOS is different. On iOS the active bluetooth device is the one through which audio will play. Example: You may be connected to both car’s stereo and airpods but only one of them will be active, the one through which audio is playing or will play.
const devices = await Zendrive.getBluetoothPairedDevices();
devices.forEach((item) => {
  
  
  console.log(`Name: ${item.name}`);
  console.log(`Address: ${item.address}`);
});
Android Changes
- enabledBluetoothTripStartproperty is available in- ZendriveConfiguration, this can passed during setup call. More details can be found here
const resp = await Zendrive.setup({
  
  enabledBluetoothTripStart: true,
});
- New issue type location-unavailable-while-drive-resumeis added.
- Following error codes are added
- invalid-value-for-trip-parameter
- google-and-huawei-mobile-services-unavailable
- huawei-mobile-services-update-required
- unsupported-device
 
iOS Changes
const devices = await Zendrive.getAllRegisteredBeacons();
devices.forEach((item) => {
  
  
  console.log(`uuid: ${item.uuid}`);
  console.log(`major: ${item.major}`);
  console.log(`minor: ${item.minor}`);
});
await Zendrive.addBeacon({
  uuid: '123',
  major: 2,
  minor: 1,
});
await Zendrive.removeBeacon({
  uuid: '123',
  major: 2,
  minor: 1,
});
Breaking Change
- error code string ACTIVITY_RECOGNITION_PERMISSION_DENIEDis renamed toactivity-recognition-permission-denied
- error code string LOCATION_PERMISSION_DENIEDis renamed tolocation-permission-denied
4.0.0
| Android SDK | iOS SDK | 
| 7.0.0 | 7.0.1 | 
- Upgrades react-native to 0.63.4.
- Vehicle type support is added. The vehicle type attribute can be set while setting up the Zendrive sdk as follows.
const resp = await Zendrive.setup({
  driverId: 'your-driver-id',
  sdkKey: 'your-sdk-key',
  attributes: {
    vehicleType: 'car', 
  },
});
iOS changes
- Add implementation for settingsChangedinEventEmitterand sendcom.zendrive.onSettingsChangedevent to javascript.
func settingsChanged(_ settings: ZendriveSettings) {
    send(name: "com.zendrive.onSettingsChanged", body: settings.toErrorsFoundRNObject())
}
- adds implementation for - getZendriveSettingsnative module method.
 
- deprecated - com.zendrive.onLocationApproved,- com.zendrive.onLocationDenied,- com.zendrive.onActivityApprovedand- com.zendrive.onActivityDenied. Use- com.zendrive.onSettingsChangedinstead .
 
- Breaking Change: iOS setup now requires minimum XCode version 12.x and cocoa pods version - 1.10.1.
 
3.0.0
| Android SDK | iOS SDK | 
| 6.3.1 | 6.3.0 | 
- Multiple accident callbacks support is added as part of configuration. implementsMultipleAccidentCallbacksis the property that needs to be provided during setup.
Zendrive.setup({
  driverId: 'your-driver-id',
  sdkKey: 'your-sdk-key',
  implementsMultipleAccidentCallbacks: true, 
});
- Potential Accident events will be now reported as - on-potential-accidentevent in- registerZendriveCallbackEventListenercallback. See https://docs.zendrive.com/housekeeping/collision for further reading on this feature.
 
- associateVehicle,- dissociateVehicleand- getAssociatedVehiclesare now available on- Zendrivemodule. See- Vehicle Taggingsection in- Features and Modificationsguide. See also https://docs.zendrive.com/housekeeping/vehicle-tagging for further reading on this feature.
 
- on-drive-analyzedwill now have- tagsproperty which includes all tagging information available for that drive.
 
Android changes
- New error codes are added to ZendriveIssueType-airplane-mode-enabled,bluetooth-disabled. These will be reported as part ofon-settings-changedchanged event.
- openAdvancedBatterySettingsmethod on- Zendrivemodule will open battery settings of the device.
iOS changes
- Activity permissions on iOS will be reported as - on-activity-approvedand- on-activity-deniedevent in- registerZendriveCallbackEventListenercallback.
 
- Breaking Change: iOS setup now requires that you use atleast - Swift 5and cocoapods version- 1.10.0.beta.1.
 
2.0.0
| Android SDK | iOS SDK | 
| 6.2.0 | 6.1.0 | 
- Region support is now available for EUandUS. It should be part of setup configuration.
Zendrive.setup({
  driverId: 'your-driver-id',
  sdkKey: 'your-sdk-key',
  region: 'US', 
});
- Three new error codes are added which can be reported during the setup call, region-unsupported,region-switch-erroranduser-deprovisioned
Android Changes
- Two new settings errors are added; - battery-optimization-enabledand- one-plus-deep-optimization. This will be reported as part of- Zendrive.getZendriveSettings().
 
- Support waiting for drive scenario. Waiting for drive notification can be configured as part of setup call just like - inDriveSettingsor- mayBeInDriveSettings
 
Zendrive.setup({
  driverId: 'your-driver-id',
  sdkKey: 'your-sdk-key',
  driveDetectionMode: 'auto-on',
  notificationSettings: {
    channelKey: 'Driving',
    inDriveSettings: {
      contentTitle: 'ZD in-drive',
      contentText: 'Driving has started.',
      smallIcon: require('../img/baseline_drive_eta_black_18.png'),
      notificationId: '<id>',
    },
    mayBeInDriveSettings: {
      contentTitle: 'ZD maybe-in-drive',
      contentText: 'May be in drive.',
      smallIcon: require('../img/baseline_drive_eta_black_18.png'),
    },
    waitingForDriveSettings: {
      contentTitle: 'ZD waiting-for-drive',
      contentText: 'Waiting for drive to start.',
      smallIcon: require('../img/baseline_drive_eta_black_18.png'),
      notificationId: '<id>',
    },
  },
});
- Breaking Change: Zendrive.getZendriveStatemethod call'sattributesproperty inzendriveConfigurationdoes not include custom attributes any more. You need to callZendrive.getZendriveDriverCustomAttributesmethod to query custom properties.
iOS changes
- Fix bug: sometimes drive events are not reported.