> For the complete documentation index, see [llms.txt](https://docs.movesdk.com/move-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.movesdk.com/move-platform/sdk/models/moveconfig.md).

# MoveConfig

The MOVE SDK offers to detect different modes of transport and driving services. The host app can configure which driving services to activate and modes of transport to detect by setting the [MoveConfig](/move-platform/sdk/models/moveconfig.md) object when initializing the MOVE SDK.

{% hint style="warning" %}
**The host app can only configure its MOVE SDK services to the set or subset of services subscribed** by the MOVE project ID in the [MOVE dashboard](/move-platform/sdk/getting-started/move-dashboard.md). You will get a failure list with [MoveError.Unauthorized](/move-platform/sdk/models/moveservicefailure.md) error if services are not configured.
{% endhint %}

{% tabs %}
{% tab title="Android" %}

```kotlin
data class MoveConfig(
    var moveDetectionServices: List<MoveDetectionService> = emptyList(),
)

...

sealed class MoveDetectionService {
    class Driving(val drivingServices: List<DrivingService>? = null) : MoveDetectionService()
    object Cycling : MoveDetectionService()
    class Walking(val walkingServices: List<WalkingService>? = null) : MoveDetectionService()
    object Places : MoveDetectionService()
    object PublicTransport : MoveDetectionService()
    object PointsOfInterest : MoveDetectionService()
    object AutomaticImpactDetection : MoveDetectionService()
    object AssistanceCall : MoveDetectionService()
    object Health : MoveDetectionService()
}
    
```

{% endtab %}

{% tab title="iOS" %}

```swift
struct MoveConfig {
    enum DetectionService {
        case driving([DrivingService])
        case cycling
        case walking([WalkingService])
        case places
        case publicTransport
        case pointsOfInterest
        case automaticImpactDetection
        case assistanceCall
        case health
    }

    enum DrivingService {
        case drivingBehavior
        case distractionFreeDriving
        case deviceDiscovery
    }
    
    enum WalkingService {
        case location
    }
 
    var detectionServices: [TimelineDetectionService]
}
```

{% endtab %}

{% tab title="React Native" %}

```javascript
export type MoveSdkConfig = {
  timelineDetectionServices: TimelineDetectionService[];
  drivingServices: DrivingService[];
  walkingServices: WalkingService[];
};
export type DrivingService = 'DISTRACTION_FREE_DRIVING' | 'DRIVING_BEHAVIOUR' | 'DEVICE_DISCOVERY';
export type WalkingService = 'LOCATION';
export type TimelineDetectionService =
  | 'DRIVING'
  | 'CYCLING'
  | 'WALKING'
  | 'PUBLIC_TRANSPORT'
  | 'AUTOMATIC_IMPACT_DETECTION'
  | 'ASSISTANCE_CALL'
  | 'POINTS_OF_INTEREST'
  | 'HEALTH';
```

{% endtab %}

{% tab title="Flutter" %}

```dart
import 'package:movesdk/io/dolphin/move/move_detection_service.dart';
```

```dart
enum MoveDetectionService {
  assistanceCall,
  automaticImpactDetection,
  cycling,
  driving,
  distractionFreeDriving,
  drivingBehaviour,
  deviceDiscovery,
  health,
  places,
  pointsOfInterest,
  publicTransport,
  walking,
}

final moveConfig = MoveConfig([
  MoveDetectionService.driving,
  MoveDetectionService.drivingBehaviour,
  MoveDetectionService.distractionFreeDriving,
  MoveDetectionService.cycling,
  MoveDetectionService.walking,
  MoveDetectionService.automaticImpactDetection,
  MoveDetectionService.assistanceCall,
  // ...
]);
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please check also the platform specific configuration pages ([Android](/move-platform/sdk/api-interface/android/initialization.md) / [iOS](/move-platform/sdk/api-interface/ios/intialization.md)).
{% endhint %}

<table data-header-hidden><thead><tr><th width="209.33333333333331">MoveConfig</th><th width="246"></th><th></th></tr></thead><tbody><tr><td><strong>MoveConfig</strong></td><td></td><td></td></tr><tr><td><strong>DetectionServices</strong></td><td></td><td>List of required modes of transportation to be detected.</td></tr><tr><td></td><td>driving</td><td>Detect the driving activity.</td></tr><tr><td></td><td>cycling</td><td>Detect the cycling activity.</td></tr><tr><td></td><td>walking</td><td>Detect the walking activity.</td></tr><tr><td></td><td>places</td><td>Detect places where user spent time.<br><strong>Note:</strong> This feature is not publicly available.</td></tr><tr><td></td><td>publicTransport</td><td>Detect public transport trips</td></tr><tr><td></td><td>pointsOfInterest</td><td>Monitor and track points of interest </td></tr><tr><td></td><td>automaticImpactDetection</td><td>Detect impacts while driving or as stand alone service.</td></tr><tr><td></td><td>assistanceCall</td><td>Enable assistance call.</td></tr><tr><td><strong>DrivingServices</strong></td><td></td><td>List of required driving services to be detected.</td></tr><tr><td></td><td>distractionFreeDriving</td><td>Detect the user's distraction-free driving duration during a trip.</td></tr><tr><td></td><td>drivingBehavior</td><td>Detect the user's driving behavior during a trip.</td></tr><tr><td></td><td>deviceDiscovery</td><td>Scanning for registered devices during a trip. (since MOVE SDK v2.4)</td></tr><tr><td><strong>WalkingServices</strong></td><td>location</td><td><strong>Note:</strong> This feature is not publicly available.</td></tr></tbody></table>

{% hint style="info" %}
Each [MoveConfig](/move-platform/sdk/models/moveconfig.md) requires one or more permissions (see for [Android](/move-platform/sdk/appendix/android/permission-handling.md) and [iOS](/move-platform/sdk/appendix/ios/permission-handling.md)). **Individual MOVE SDK services will not function without the required permissions.** Check [MoveSDKState](/move-platform/sdk/models/movesdkstate.md) for more details.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.movesdk.com/move-platform/sdk/models/moveconfig.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
