//判断权限
if (PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(
this,
permission.CAMERA
) || PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(
this,
permission.WRITE_EXTERNAL_STORAGE
) || PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(
this,
permission.READ_EXTERNAL_STORAGE
)
) {
//申请获取权限
ActivityCompat.requestPermissions(
this, arrayOf(permission.CAMERA,permission.WRITE_EXTERNAL_STORAGE,permission.READ_EXTERNAL_STORAGE), 10001
)
}else{
//执行授权后的其他操作
}
在android权限申请中除了在AndroidManifest.xml中申请外,在动态获取权限的地方可以采用上述方法
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 用于写入缓存数据到扩展存储卡 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 用于申请调用A-GPS模块 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 用于申请获取蓝牙信息进行室内定位 -->