SDK for Android Developer's Guide

Required Permissions

Some functionality needs special permissions to work properly. Below you will find a list of some key permissions.

To add permissions, open AndroidManifest.xml. Add the following markup before the <application></application> tags:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
Note: If your app uses Android API level 23 (Android 6.0) or above, you must also add code to request for permissions during runtime. You can find more information in the Request for Permissions section.

Permission ACCESS_FINE_LOCATION, Permission ACCESS_COARSE_LOCATION

These permissions are required to access precise location. In case this permission isn't granted, PositioningManager.start(PositioningManager.LocationMethod) returns false and functionality like guidance navigation will not work.

Permission INTERNET

INTERNET permission is needed for the functionality that is based on Internet connection such as search, routing, online map rendering and others.

Permission ACCESS_NETWORK_STATE

ACCESS_NETWORK_STATE permission is needed to access information about network state. It allows to check if device is connected to internet or disconnected.

Permission CHANGE_NETWORK_STATE, Permission ACCESS_WIFI_STATE, Permission CHANGE_WIFI_STATE, Permission BLUETOOTH, Permission BLUETOOTH_ADMIN, Permission WAKE_LOCK, Permission READ_PHONE_STATE

These permissions are needed when HERE Positioning is used.

Permission WRITE_EXTERNAL_STORAGE

WRITE_EXTERNAL_STORAGE permission is needed when the map disk cache path is set outside of the app-specific directory.

Note: Starting in API level 19 android.permission.WRITE_EXTERNAL_STORAGE is no longer required if the map disk cache(See MapSettings.setDiskCacheRootPath(path)) is set under an application-specific file directory.

Permission FOREGROUND_SERVICE

FOREGROUND_SERVICE permission is required for positioning when the app is in the background.