For the complete documentation index, see llms.txt. This page is also available as Markdown.

Permission Overview

The library requires at least the following permissions to access MOVE SDK services.

<!-- ====================================================== -->
<!-- MOVE SDK — AndroidManifest.xml Permission Reference    -->
<!-- Comment out permissions for services you don't use.    -->
<!-- ====================================================== -->

<!-- Required for reliable background operation — strongly recommended for all configurations -->
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

<!-- Required for all services -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />

<!-- Required for: Driving, Cycling, Walking, DFD, DBE, POI, Public Transport, AID, Assistance Call -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- Driving, Cycling, Walking -->
<!-- Since SDK 2.6: optional if backgroundLocationPermissionMandatory = false in MoveOptions -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

<!-- Required for: Cycling, Walking. Strongly recommended for: Driving -->
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />

<!-- Required for Android 13+ (API 33+) -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<!-- Required for: Distraction-Free Driving (DFD) -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<!-- Required for: Distraction-Free Driving (DFD) -->
<!-- Since SDK 2.6.9: optional if overlayPermissionMandatory = false in MoveOptions -->
<!-- Attention: if optional, device must have a gyroscope -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

<!-- Required for: Assistance Call (Android 11 and lower) -->
<uses-permission android:name="android.permission.BLUETOOTH" />

<!-- Required for: Driving (Device Discovery), Assistance Call (Android 12+) -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

<!-- Required for: BLE scanning (Android 12+) -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

<!-- Required for: Bluetooth scanning (Android 11 and lower) -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

<!-- Required for: Assistance Call (background internet check) -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

<!-- Required for: Health Connect (Step Counter) -->
<uses-permission android:name="android.permission.health.READ_STEPS" />
<uses-permission android:name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" />

Depending on the used services, different permissions are required. The following table gives an overview what's required:

Battery Optimization

Strongly recommended

Permission an application must hold in order to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.

Mode of Transport

Driving

GooglePlayLocationAccuracy [1]

Cycling

GooglePlayLocationAccuracy [1]

Driving Services

Distraction-Free-Driving (DFD)

Driving behaviour events (DBE)

Other services

Points of Interest

GooglePlayLocationAccuracy [1]

Public Transport

GooglePlayLocationAccuracy [1]

Automatic Impact Detection

GooglePlayLocationAccuracy [1]

Assistance Call

Allows a regular application to use Service.startForeground with the type "location".

Phone call/speaker switch recognition.

Needed only for communicates with already-paired Bluetooth devices. Android 12

Needed to scan devices such as BLE.

Needed to scan devices on Android 11 and lower.

To check internet connection in background.

Health

Health Connect

Note: SYSTEM_ALERT_WINDOW (Overlay) and REQUEST_IGNORE_BATTERY_OPTIMIZATIONS require special handling. They cannot be requested via requestPermissions().

[1] GooglePlayLocationAccuracy = isNetworkLocationPresent + isNetworkLocationUsable

[2] improves trip recognition and classification considerably

[3] required permission deprecated with v2.4.0+

[4] see POST_NOTIFICATION Runtime Permission

[5] Since SDK 2.6: if backgroundLocationPermissionMandatory in MoveOptions is true the permission ACCESS_BACKGROUND_LOCATION is mandatory else this permission is optional.

[6] Since SDK 2.6.9: if overlayPermissionMandatory in MoveOptions is false the permission SYSTEM_ALERT_WINDOW is NOT mandatory anymore. Attention: in this case the device must be equipped with a gyroscope!

More Information regarding the Android system permissions can be found here: https://developer.android.com/reference/android/Manifest.permission

The required permissions must be granted before the MOVE SDK service can be used. In case of missing permissions this will be presented by MoveServiceFailure and/or by MoveServiceWarning.

For more information about "dangerous permissions" visit the official developer page.

In fact the MOVE SDK is not aware of permission changes, the developer can tell the MOVE SDK that the error is resolved.

Last updated