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
preinstall
script from package.json
to 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
installHmsRelease
to 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 |
getBluetoothPairedDevices
method 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
enabledBluetoothTripStart
property 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-resume
is 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_DENIED
is renamed to activity-recognition-permission-denied
- error code string
LOCATION_PERMISSION_DENIED
is renamed to location-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
settingsChanged
in EventEmitter
and send com.zendrive.onSettingsChanged
event to javascript.
func settingsChanged(_ settings: ZendriveSettings) {
send(name: "com.zendrive.onSettingsChanged", body: settings.toErrorsFoundRNObject())
}
adds implementation for getZendriveSettings
native module method.
deprecated com.zendrive.onLocationApproved
, com.zendrive.onLocationDenied
, com.zendrive.onActivityApproved
and com.zendrive.onActivityDenied
. Use com.zendrive.onSettingsChanged
instead .
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.
implementsMultipleAccidentCallbacks
is 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-accident
event in registerZendriveCallbackEventListener
callback. See https://docs.zendrive.com/housekeeping/collision for further reading on this feature.
associateVehicle
, dissociateVehicle
and getAssociatedVehicles
are now available on Zendrive
module. See Vehicle Tagging
section in Features and Modifications
guide. See also https://docs.zendrive.com/housekeeping/vehicle-tagging for further reading on this feature.
on-drive-analyzed
will now have tags
property 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 of on-settings-changed
changed event.
openAdvancedBatterySettings
method on Zendrive
module will open battery settings of the device.
iOS changes
Activity permissions on iOS will be reported as on-activity-approved
and on-activity-denied
event in registerZendriveCallbackEventListener
callback.
Breaking Change: iOS setup now requires that you use atleast Swift 5
and 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
EU
and US
. 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-error
and user-deprovisioned
Android Changes
Two new settings errors are added; battery-optimization-enabled
and 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 inDriveSettings
or 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.getZendriveState
method call's attributes
property in zendriveConfiguration
does not include custom attributes any more. You need to call Zendrive.getZendriveDriverCustomAttributes
method to query custom properties.
iOS changes
- Fix bug: sometimes drive events are not reported.