By default, the DriveKit SDK is automatically initialized as soon as you add the TripAnalysis module to your project.
In some cases, you may want to manually initialize the SDK. To do this, you have to disable the automatic initialization by adding the key DKAutoInitEnabled
associated to the Boolean value false
into the Info.plist
file:
Then, you must call the initialization method in didFinishLaunchingWithOptions
method of your AppDelegate
.
The DriveKit modules include a method initialize
that must be called in didFinishLaunchingWithOptions
method of your AppDelegate
if you have decided to manually initialize the SDK.
You can check if DriveKit is well configured with the following method:
This method returns true
if these three conditions are met:
DriveKit Core is initialized
an API key is set
a userId is set
You can check if the user is connected by calling the following method:
This method returns true
if the user is authenticated to DriveKit.
DriveKit comes with a logging feature that is enabled by default. This feature allows you to quickly identify the cause of a problem. We recommend leaving the log enabled as it does not consume memory space and is useful in the support phase. However, if you don't want to use it, it can be disabled.
Disable logging by calling the following method:
To activate logging, call the following method:
If the user disables the sensors or revokes permissions, the application would not be able to detect and record a trip. To avoid this, the SDK identifies important sensor state and permission changes.
These events are shared and you can use them in your application to inform the user via a visual alert or by displaying a notification.
DKDeviceConfigurationDelegate
is a protocol used to get callbacks when device configuration changes are detected:
To add a delegate and listen for Device Configuration Events, you can call the following function:
To remove a specific delegate, call the following method:
To remove all delegates, call the following method:
DKDeviceConfigurationEvent
is a class describing a device configuration event.
isValid
Boolean
Boolean describing whether the device configuration event is valid or not
Possible types are:
activityPermission
Motion & Fitness permission status changed
locationPermission
Location permission status changed
bluetoothPermission
Bluetooth permission status changed
notificationPermission
Notifications permission status changed
lowPowerMode
Low Power Mode status changed
locationSensor
Location sensor status changed
bluetoothSensor
Bluetooth sensor status changed
The DriveKit SDK will run optimally if the isValid value of each event is true. The table below explains the impact of a status that is not true.
LocationPermission
🔴
No trip recording if app has no access to GPS sensor
BluetoothPermission
🟡
No trip detection based on Bluetooth system
ActivityPermission
🟡
Detected transportation mode mode can be inaccurate when no access to this permission
NotificationPermission
🟢
Your application cannot send notification to the user if the permission is revoked.
lowPowerMode
🟢
No considerable impact
LocationSensor
🔴
No trip recording if GPS sensor is disabled
BluetoothSensor
🟡
No trip detection based on Bluetooth system. Can also impact beacon trip detection.
To get user’s information (first name, last name and pseudo), call the getUserInfo
method. It will retrieve and save these data locally:
You can add information to a user's account such as first name, last name and pseudo. These details are optional and you can choose to make the user's account anonymous. To update the user's information, you must call the updateUserInfo
method:
Or to update all information:
It is possible to update the userId by calling the following method:
You can delete a driver's account in DriveKit. This action deletes all the data related to the account.
The deletion can be done instantly or with delay.
In the first case, when the method is called, the account is instantly deleted.
In the second case, the driver has 30 days to log back into the application and reactivate his account.
To delete a driver's account, use the following method:
instantDeletion
can have 2 values:
false
: Default value, allows the user to recover the deleted account by logging-in again with the same credentials. Users have 30 days starting from the day when the account was deleted.
true
: Allow to delete an account instantly. The account and all the related data will be immediately deleted and no rollback is possible.
You should restore the DriveKit API key in the onAccountDeleted()
callback only when the status value is SUCCESS
.
The installation identifier (installationId) is not a unique device identifier. It is used to identify an app installation that includes the DriveKit SDK, linked to a specific account on a particular device.
The installationId is generated based on the following attributes:
Installation date
App
User account
Device type
The installationId helps determine whether a user has logged into a mobile app with the same account across multiple devices.
For a user with one account and a single device, the installationId behaves as follows:
It remains unchanged if the user logs out and logs back in, as long as the app is not uninstalled.
It is updated when the user uninstalls and reinstalls the app.
If a user logs into the app on several devices using the same account, each device will have a different installationId.
If the user reconnects to the app on the same device but with a different account, the installationId will be updated.
You can retrieve the installationId by calling the following computed property:
If you need to reset DriveKit configuration (user logout for example), you can call the following method:
All data saved locally will be erased and default configuration for every module will be restored.