Quick Start

Get the MOVE SDK running

Initializing the MOVE SDK

To be able to use the SDK, several permission need to be granted. This is described in Permission Handling.

Create SDK instance

Start by creating a SDK instance using the Move.Builder.

It is recommended that the required permissions are requested before initializing the SDK.

import io.dolphin.move.MoveSdk
...
var sdk: MoveSdk = MoveSdk.Builder()
    .transportModes(ModeOfTransport.DRIVING)
    .authentication(MoveAuth.Auth(productId,"contractId","accessToken","refreshToken"))
    .init(context)

You need to replace productId, contractId, accessToken, and refreshToken with your own values.

In order to successfully initialize and run the SDK, the user's MoveAuth must already be fetched (see also here), and the required permissions must be granted. If the provided MoveAuth is invalid, the SDK will not initialize and complete with MoveConfigurationError.AuthInvalid. If the required permissions are missing, the SDK will initialize but go into missing permission error State.

The initialization of the MoveSdk is asynchronous and you will be notified regarding state changes with the MoveStateListener. The init can be called on the main thread or even on background threads. On successful initialization the MoveSdkState changes to READY.

Now that there is an instance of the SDK, the detection may be started with startAutomaticDetection(), which should lead to an RUNNING state of the MoveSdk.

The MoveSdkis collecting data only when inRUNNING state.

Full code example

// Initialize sdk
 
moveAuth?.let {
   val moveSdk= MoveSdk.Builder()
    .timelineDetectionService(TimelineDetectionService.DRIVING, TimelineDetectionService.WALKING, TimelineDetectionService.BICYCLE)
    .drivingServices(DrivingService.DistractionFreeDriving, DrivingService.DrivingBehaviour)
    .recognitionNotification(recognitionNotification)
    .tripNotification(drivingNotification)
    .sdkStateListener(sdkStateListener)
    .authStateUpdateListener(authListener)
    .tripStateListener(tripStateListener)
    .authentication(moveAuth)
    .init(applicationContext);
...
 
... 
// in your MoveSdk.StateListener
  onStateChanged(sdk: MoveSdk, state: MoveSdkState) {
   val state = moveSdk.getSdkState()
   if (state is Ready) {
     moveSdk.startAutomaticDetection()
   }
  }

Last updated