最近做的项目遇上Android6.0以上版本总是有些地方报错,原因是没有动态获取一些权限
报错导致闪退,记录一个比较简单的获取权限的方法
配置文件先加入静态权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
private final String[] PERMISSIONS = {
Manifest.permission.RECORD_AUDIO,
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
};
定义全局变量
onCreate方法内判断版本
if (Build.VERSION.SDK_INT>=23){
if (!hasPermissions(this, PERMISSIONS)) {
ActivityCompat.requestPermissions(this, PERMISSIONS, 1);
}
}
调用方法
private boolean hasPermissions(Context context, String... permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission)
!= PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
demo下载地址:
https://download.csdn.net/download/fryan28/11388338
打开后会提示是否允许……
点击允许可以获取相关权限
版权声明:本文为FRYAN28原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。