Android7.0版本蓝牙适配
2022-04-06 本文已影响0人
红鲤鱼与绿鲤鱼与驴与鱼
今天遇到一个BUG,之前在Android5.0版本上的蓝牙功能,在7.0上就搜索不到设备。这是因为在6.0以后蓝牙需要一个定位的动态权限
在AndroidManifest中添加 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
权限
然后在代码中动态申请权限
//蓝牙权限
//动态权限申请
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//如果 API level 是大于等于 23(Android 6.0) 时
//判断是否具有权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//请求权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
}else {
//初始化蓝牙的方法,必须有定位权限才可以初始化
initBluetooth();
}
} else {
initBluetooth();
}
//权限申请成功后再进行初始化
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
initBluetooth();
}
}