Release Notes
V3.0.3
New Features
- Implemented
reverse gearinVehicle Status - Created an enum class
GattErrorto represent GATT errors with descriptive names and descriptions
Bug Fixes
- Corrected the
VehicleStatus.lightIsOnto display the accurate value - Resolved slow connection issues
- Addressed ANR (Application Not Responding) problems related to connection
- Prevented heartbeat calls when an action has not received a response to avoid timeout
Improvements
- Added new log message for
onConnectionStateChangeto provide information about the GATT status and connection state:GattStatus = [gatt description], Connection State = [Connect/Disconnect]
Download 📦
V3.0.2
New Features
- Reintroduced
BleTerminal.hasKey() - Added
BleError.LocationUnauthorisedto return an error when the user disallows location permission - Added
BleError.CtgError.TooManyRequestto return an error when exceeding more than 3 concurrent commands - Added
BleError.GATTErrorto return Bluetooth Gatt errors
Bug Fixes
- Fixed SDK failure to compile
- Fixed
BleListener.onSignalStrengthto read the RSSI for a connected remote device
Download 📦
V3.0.1
- Added
BleError.LocationUnauthorisedto return an error when the user disallows location permission
Download 📦
V3.0
Notice: This version has breaking changes
Before
The management of Bluetooth keys was handled by the SDK, which communicated with the Cartrack servers from the initial version to version 2.4:
- Obtaining the key
- Key randomisation
This increased complexity for mobile integrations, and keys could only be fetched (or randomized) while the smartphone had the app open. In many cases, users may be in environments with limited cellular connectivity (for example, parking garages), which made the process cumbersome.
After
This new SDK is more straightforward, and we have exported the key management into the Cartrack Fleet API. Using the API, you can now fetch the BlueTooth keys ahead of time and reuse them for multiple bookings. Have a look at the following endpoints:
-
GET /mikey/:registration, to get the key for a given vehicle registration
-
GET /mikey, to get the keys for all your vehicles
-
POST /mikey/:registration, to randomise the key for a given vehicle registration
-
API documentation: https://developer.cartrack.com/fleet-api
To enhance security, it is advisable to randomize keys periodically. We suggest rotating keys when there is enough time between two users, allowing the vehicle to receive the new key and the user to load it on their phone.
You can then provide the key to the user’s smartphone using the SDK key functions.
BleListener.onSaveAuthKeySuccesscalled when save authentication key successfullyBleTerminal.saveAuthKey,BleTerminal.getAuthKeyandBleTerminal.removeAuthKeyto handle authentication key
Release details
- Remove
VendorId,API keyandcountry code - Remove
Random Key,Fetch Key,Save KeyandRemove Keyfrom API - Combine
BleConnectionError,BleActionErrorandBleKeyErrortoBleError - Remove unused
Error - Added connection timeout parameter for
scanAndConnectToPeripheral
Download 📦
V2.4.2
- Added
ErrorHandler.BleConnectionError.LocationUnauthorisedto return an error when the user disallows location permission
Download 📦
V2.4.1
- Reintroducing
BleTerminal.hasKey()
Download 📦
2.4
- Added
ErrorHandlerto handle all possible errors - Added
ErrorHandler.BleConnectionErrorto indicate bluetooth connection and authentication failures and provide an error type - Added
ErrorHandler.BleActionErrorto indicate when a BLE action failed and provide an error type - Added
ErrorHandler.CtgErrorto indicate when a terminal action failed and provide an error type - Added
BleListener.onErrorto return all error fromBleListener - Added
BleAction.VEHICLE_GET_STATUSto get the current state of the vehicle’s ignition - Removed
BleListener.onTerminalConnectionFailedand merge it toBleListener.onError - Changed
BleListerner.onGetAuthKeytoBleListener.onGetAuthKeySuccessto return success API, failure will return inBleListener.onError - Changed
BleListerner.onRemoveAuthKeytoBleListener.onRemoveAuthKeySuccessto return success API, failure will return inBleListener.onError - Changed
BleListerner.onRandomAuthKeytoBleListener.onRandomAuthKeySuccessto return success API, failure will return inBleListener.onError - Moved errors so that they are returned in
BleListener.onError - Added
BleListener.onTerminalDidGetVehicleStatusfor showingIgnitionState - Updated error code and localized description for Error Handler
Download 📦
V2.3
- Added a function
BleAction.unlockNoKeyFobto send an unlock commandUnlock_0that doesn't activate the key fob. The driver won't be able to start the engine. - Receive
BleAction.unlockNoKeyFobresponse inBleTerminalDelegate.bleTerminalDidAction(terminal:action:error:)
Download 📦
V2.2.1
- Add BleTerminal.removeAuthKey() to remove authentication key from local memory
- Add BleListener.onRemoveAuthKey(error: String?, success: Boolean?) to receive a call back when removeAuthKey() called
- Add BleTerminal.randomAuthKey() to random the terminal authentication key , call back will be received in BleListener.onGetAuthKey (error: String?, success: Boolean?)
- We now have two separate functions removeAuthKey and randomAuthKey, please consider it when upgrading to this new version.
- The Shared Preference will only save one authentication key with a static name. If you want to use another it for a different vehicle or a new authentication key, you will need to remove the current authentication key before fetching the new one.
- Bugfix for the default url
Download 📦
V2.2
- Add a new parameter apiUrl in BleService.configure().
- Add BleService.setApiUrl(apiUrl: String) for changing the apiUrl at runtime.
- Add BleService.setDefaultApiUrl() for changing the apiUrl to the default apiUrl at runtime.
Download 📦
V2.1
- Fix unicode characters which fail to convert to proper bytes.
Download 📦
V2.0
- Add a new parameter countryCode in BleService.configure().
- Please refer to iban.com/country-codes for the country code alpha-2 format.
- Add BleService.clear() for clearing BleService instance.
Download 📦
V1.5
- Fix a situation where the terminal name is null on specific smartphones, causing a crash
Download 📦
V1.4
- Fix an issue where the SDK fails to fetch the key, when the smartphone does not have stable connection
Download 📦
V1.3
- Fix a crash when phone goes outside of the terminal BLE antenna's range
Download 📦
V1.2
- Add BleTerminal.getBleConnectionState() to indicate the state of the BLE
- Fix an intermittent CRC fail at the connection between smartphone and terminal
Download 📦
V1.1
- Add BleTerminal.getLockState() to indicate vehicle’s lock state
- Add BleAction.GET_LOCK_STATE action to get the latest vehicle’s lock state
Download 📦
V1.0
- Initial release