Permissions
Android 6.0 (API level 23) introduced a runtime permissions model that requires apps to request certain permissions—including location permissions—at runtime, in addition to declaring them in AndroidManifest.xml.
Set the Target SDK Version
For apps with targetSdkVersion set to less than 23, Android 6.0 automatically grants all permissions declared in the manifest at install time. This means such apps will not crash on Android 6.0 devices due to missing runtime permissions.
Android Studio
Declare targetSdkVersion as 23 in your build.gradle file:
android {
compileSdkVersion 23
buildToolsVersion '23.0.1'
defaultConfig {
applicationId "com.amap.location.demo"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "2.5.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}Eclipse
Declare targetSdkVersion as 23 in your AndroidManifest.xml file:
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />Check and Request Permissions for Displaying a Map
Before using the map, you must check and request the required permissions at runtime. The following example demonstrates how to declare the necessary permissions in AndroidManifest.xml:
<!-- Required permissions for the map and search packages -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Additional permissions required for the location and navigation packages (the base permissions above are also required) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />Note: For a complete guide on implementing runtime permission requests in your app, refer to the [Android developer documentation on requesting permissions](https://developer.android.com/training/permissions/requesting).