该示例主要展示 Android App 在6.0系统上如何申请动态权限,以定位权限和存储卡权限为例。
核心类/接口
暂无。
1、声明目标SDK版本
Android 6.0系统默认为targetSdkVersion小于23的应用默认授予了所申请的所有权限,所以如果您APP设置的targetSdkVersion低于23,在运行时也不会崩溃。
Android Studio:
在build.gradle中声明targetSdkVersion为23。
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:
在AndroidManifest.xml中声明targetSdkVersion为23。
<uses-sdk android:minsdkversion="14" android:targetsdkversion="23">
</uses-sdk>
2、检查并申请权限:
详见本篇 Android 示例com.amap.requestpermissions.MainActivity类的checkLocationPermission()方法和checkStoragePermission()方法。
3、用户授权
此处以申请SD卡存储权限为示例,需要用户点击允许或者禁止,如下图:
4、接收回调
当用户点击了上一步的提示框之后,程序会收到系统方法的回调。您可以在回调中做进一步的业务处理。
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//可在此继续其他操作。
}