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();
        }
    }
上一篇下一篇

猜你喜欢

热点阅读