> 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/moveoptions.md).

# MoveOptions

{% hint style="info" %}
MoveOptions class since MOVE SDK v2.3
{% endhint %}

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

```kotlin
data class MoveOptions(
    val motionPermissionRequired: Boolean = false,
    val backgroundLocationPermissionMandatory: Boolean = false,
    val overlayPermissionMandatory: Boolean = true,
    val useBackendConfig: Boolean = false,
    val deviceDiscovery: DeviceDiscovery? = null,
)
```

{% endtab %}

{% tab title="iOS" %}

```swift
public class MoveOptions: Codable {
    var motionPermissionMandatory: Bool
    var backgroundLocationPermissionMandatory: Bool
    var useBackendConfig: Bool
    var deviceDiscovery: DeviceDiscovery
}
```

{% endtab %}

{% tab title="React Native" %}

```typescript
export declare type MoveSdkOptions = {
    motionPermissionMandatory?: boolean;
    backgroundLocationPermissionMandatory?: boolean;
    overlayPermissionMandatory?: boolean;
    useBackendConfig?: boolean;
    deviceDiscovery?: MoveSdkDeviceDiscovery;
};
```

{% endtab %}

{% tab title="Flutter" %}

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

```dart
class MoveOptions {
    bool? motionPermissionMandatory;
    bool? backgroundLocationPermissionMandatory;
    bool? useBackendConfig;
    DeviceDiscoveryOptions? deviceDiscovery;
}
```

{% endtab %}
{% endtabs %}

<table data-header-hidden><thead><tr><th width="265.3333333333333">MoveOptions</th><th width="164"></th><th width="95"></th><th></th></tr></thead><tbody><tr><td><strong>MoveOptions</strong></td><td><strong>Type</strong></td><td><strong>Default</strong></td><td></td></tr><tr><td>motionPermissionRequired (Android) / motionPermissionMandatory (iOS)</td><td>Boolean</td><td>false</td><td>Pass <strong>true</strong> if you want the motion permission (activity recognition) to be mandatory for driving service.</td></tr><tr><td>backgroundLocationPermissionMandatory (<strong>Since MOVE SDK v2.6)</strong></td><td>Boolean</td><td>false</td><td>Pass <strong>true</strong> if you want the background location permission to be mandatory for driving service.</td></tr><tr><td><p><strong>ANDROID ONLY:</strong></p><p>overlayPermissionMandatory (<strong>Since MOVE SDK v2.6.9</strong>)<br><br><strong>Flutter:</strong> <code>overlayPermissionMandatory</code> is not configurable via Flutter MoveOptions. The default is <code>true</code>.</p></td><td>Boolean</td><td>true</td><td>Pass <strong>false</strong> if you don't want the overlay permission mandatory for driving service. <strong>Attention: in this case the device must be equipped with a gyroscope!</strong></td></tr><tr><td>useBackendConfig<br>(<strong>Since MOVE SDK v2.5)</strong></td><td>Boolean</td><td>false</td><td>Pass <strong>true</strong> to use the MOVE Dashboard configuration instead of the local <code>MoveConfig</code>. When enabled, the local <code>MoveConfig</code> passed in <code>setup()</code> is ignored and the backend configuration takes precedence.</td></tr><tr><td>deviceDiscovery</td><td><a href="/pages/tKpFzKaJCFp0erAlIllp">DeviceDiscovery</a></td><td>null</td><td>Create / pass a DeviceDiscovery object if you want to have more control over the <a href="/pages/-MdN8wT69x-PMLj5At9h#bdd-device-discovery">BDD - Device Discovery</a> feature.</td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="359.5">MoveOptions related</th><th></th></tr></thead><tbody><tr><td><strong>MoveOptions related</strong></td><td></td></tr><tr><td><a href="/pages/tKpFzKaJCFp0erAlIllp">DeviceDiscovery</a></td><td></td></tr><tr><td><a href="/pages/-MZIkqoqutrz3W0Y7wdZ#update-config">updateConfig</a>(...) (Android) / <br><a href="/pages/FhpTT294s7lEJpP6qQXa#update-config">update</a>(...) (iOS)</td><td></td></tr><tr><td><a href="/pages/-McyOiBhGHk7b4Lw-4oa#remote-config-change-listener">RemoteConfigChangeListener</a></td><td></td></tr></tbody></table>
