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:

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

[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. 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()) {
        moveSdk.resolveError();
    }
}

Last updated