Methods for Android app
Log in/ Log out
Log in
val trackingApi = TrackingApi.getInstance()
if (trackingApi.isAllRequiredPermissionsAndSensorsGranted()) {
trackingApi.setDeviceID("YOUR DEVICE ID") // DEV_ID = DeviceToken/UserId
trackingApi.setEnableSdk(true)
}Log out
trackingApi.logout()Enable/Disable SDK
Enable SDK
val trackingApi = TrackingApi.getInstance()
if (trackingApi.isAllRequiredPermissionsAndSensorsGranted()) {
trackingApi.setDeviceID("DeviceToken") // User DeviceToken
trackingApi.setEnableSdk(true)
}Disable SDK
Starting from 3.0.0, disabling the SDK triggers the following actions:
- stops tracking
- stops heartbeats
- forces unsent data upload
- disables the SDK
trackingApi.setEnableSdk(false)The setEnableSdk(enable: Boolean, withCheckingPermissions: Boolean) overload is not available in 4.0.0.
Enable/ Disable Tracking
These methods are not applicable to Android. Use Enable/Disable SDK.
Manual start/ stop tracking
Tracking mode overview
TrackingMode.Persistent
In this mode, all tracks started in both manual and automatic modes will be recorded as persistent. Track recording continues until trackingApi.stopTracking() is called or the maximum persistent tracking interval is reached.
In this mode, you can manually start a persistent track using either:
trackingApi.startTracking()
trackingApi.startTrackAsPersistent()TrackingMode.Standard
In this mode, all tracks started in both manual and automatic modes will be recorded as standard. Track recording continues until trackingApi.stopTracking() is called or the motion stop detector is triggered.
Set tracking mode
trackingApi.setTrackingMode(TrackingMode.Persistent)
trackingApi.setTrackingMode(TrackingMode.Standard)Get tracking mode
val mode = trackingApi.getTrackingMode()Configure persistent tracking interval
The allowed interval is from 5 to 600 minutes. The default interval is 240 minutes (4 hours).
trackingApi.setMaxPersistentTrackingInterval(240)
val maxInterval = trackingApi.getMaxPersistentTrackingInterval()Manual start
trackingApi.startTracking()trackingApi.startTracking() starts tracking using the currently configured TrackingMode.
Manual stop
trackingApi.stopTracking()Start a persistent track once
trackingApi.startTrackAsPersistent()trackingApi.startTrackAsPersistent() starts recording a persistent track once in manual mode, regardless of the configured TrackingMode.
trackingApi.startPersistentTracking() is deprecated in 4.0.0. Use trackingApi.startTrackAsPersistent() instead.
Check current track state
val isTracking = trackingApi.isTracking()Get tracking state
val trackingState = trackingApi.getTrackingState()Response:
data class TrackingState(
val automaticTrackingStatus: TrackingStatus,
val manualTrackingStatus: TrackingStatus
)enum class TrackingStatus {
ENABLED,
DEVICE_ID_NOT_SET,
SDK_DISABLED,
DISABLED_BY_SETTINGS,
DISABLED_BY_SERVER,
DISABLED_BY_SCHEDULE
}Device ID registration state
val deviceIdRegistrationState = trackingApi.getDeviceIdRegistrationState()Response:
data class DeviceIdRegistrationState(
val status: DeviceIdRegistrationStatus,
val checkedAtMillis: Long?
)enum class DeviceIdRegistrationStatus {
UNKNOWN,
NOT_SET,
VALID,
INVALID
}SDK version
val sdkVersion = trackingApi.getSdkVersion()Accident Detection Sensitivity
Set sensitivity
trackingApi.setAccidentDetectionMode(AccidentDetectionSensitivity.Normal)Sets the sensitivity level for accident detection.
Available values:
AccidentDetectionSensitivity.SensitiveAccidentDetectionSensitivity.NormalAccidentDetectionSensitivity.Tough
Reset accident detection settings
trackingApi.resetAccidentDetectionSettings()Passive detection
Check passive detection state
val enabled = trackingApi.isPassiveDetectionEnabled()Enable or disable passive detection
trackingApi.setPassiveDetectionEnabled(true)
trackingApi.setPassiveDetectionEnabled(false)Create a new tag
The detailed information about using tags is available here.
trackingApi.addFutureTrackTag(tag = "work", source = "app")Get tags
trackingApi.getFutureTrackTags()Remove a tag
trackingApi.removeFutureTrackTag("work")Remove all tags
trackingApi.removeAllFutureTrackTags()Get tracks
/**
* Returns tracks information. Tracks are cached in local DB.
*
* @param locale Language in which tracks are to arrive.
* @param startDate Start date format "yyyy-MM-dd'T'HH:mm:ss ZZ" or null.
* @param endDate End date format "yyyy-MM-dd'T'HH:mm:ss ZZ" or null.
* @param offset Offset number for pagination.
* @param count Count items for pagination.
*/// IMPORTANT! Do not call this method on the Main thread.
fun getTracks(
locale: Locale,
startDate: String,
endDate: String,
offset: Int,
count: Int
): Array<Track>Response
class Track(
var addressStart: String?,
var addressEnd: String?,
var endDate: String?,
var startDate: String?,
var trackId: String?,
var accelerationCount: Int,
var decelerationCount: Int,
var distance: Double,
var duration: Double,
var rating: Double,
var phoneUsage: Double,
var originalCode: String?,
var hasOriginChanged: Boolean,
var midOverSpeedMileage: Double,
var highOverSpeedMileage: Double,
var drivingTips: String?,
var shareType: String?,
var cityStart: String?,
var cityFinish: String?,
var ratingCornering: Double,
var ratingAcceleration: Double,
var ratingBraking: Double,
var ratingSpeeding: Double,
var ratingPhoneUsage: Double,
var ratingTimeOfDay: Double,
var addressStartParts: AddressParts?,
var addressFinishParts: AddressParts?,
val tags: Array<TrackTag>?
)data class AddressParts(
var countryCode: String?,
var country: String?,
var county: String?,
var postalCode: String?,
var state: String?,
var city: String?,
var distinct: String?,
var street: String?,
var house: String?
)data class TrackTag(
var name: String? = null,
var sourceType: String? = null,
var source: String? = null
)Get trip details
/**
* Returns detailed track information. Track details are cached in local DB.
*
* @param locale Language in which track data should be returned.
* @param trackId Track ID.
*/// IMPORTANT! Do not call this method on the Main thread.
fun getTrackDetails(trackId: String, locale: Locale): TrackDetailsResponse
class TrackDetails(
var addressStart: String?,
var addressEnd: String?,
var endDate: String?,
var startDate: String?,
var trackId: String?,
var accelerationCount: Int,
var decelerationCount: Int,
var distance: Double,
var duration: Double,
var rating: Double,
var phoneUsage: Double,
var originalCode: String?,
var hasOriginChanged: Boolean,
var midOverSpeedMileage: Double,
var highOverSpeedMileage: Double,
var points: Array<TrackPoint>?,
var drivingTips: String?,
var shareType: String?,
var cityStart: String?,
var cityFinish: String?,
var ratingCornering: Double,
var ratingAcceleration: Double,
var ratingBraking: Double,
var ratingSpeeding: Double,
var ratingPhoneUsage: Double,
var ratingTimeOfDay: Double,
var addressStartParts: AddressParts?,
var addressFinishParts: AddressParts?,
val tags: Array<TrackTag>?
)Change transportation type
/**
* Allows you to change the track type to a type from the dictionary.
*
* @param trackToken Track ID
* @param newCode New track type code from the track origin dictionary.
*/
fun changeTrackOrigin(trackToken: String, newCode: String): BooleanDictionary
OriginalDriverPassengerBusMotorcycleTrainTaxiBicycleOther
