Permission Overview

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

<uses-permission android:name="android.permission.INTERNET" />

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

Required permissions

Optional permissions

Mode of Transport


GooglePlayLocationAccuracy [1]


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

[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!

Grant the Background Location permission is strongly recommended. Similarly for the optional Activity Recognition permission (Driving) - make sure to request this from the user, otherwise it will degrade the quality of the service.

More Information regarding the Android system permissions can be found here:

The required permissions must be granted before the MOVE SDK service can be used. If any single required permission is missing, the entire MOVE SDK stops working. 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.

MoveSdk moveSdk = MoveSdk.get();
if (moveSdk != null) {
    List<MoveServiceFailure> errors = moveSdk.getServiceErrors();
    if (!errors.isEmpty()) {

Last updated

Dolphin Technologies GmbH