Android大于6.0系统 蓝牙扫描 LeScanCallback 方法 不回调

问题描述

公司的 app 要链接BLE蓝牙设备,最近发现在 6.0 系统,startLeScan(mLeScanCallback);回调不触发.查资料发现 >6.0 需要一个模糊位置权限才能使用蓝牙,至于为什么蓝牙需要位置权限,我也很意外。

解决思路 
1.1 清单加入位置权限(有可能清单中已经具备了)


1.2 动态请求权限(关键)

 public void getBlePermissionFromSys() {
        if (Build.VERSION.SDK_INT >= 23) {
            int REQUEST_CODE_CONTACT = 102;
            String[] permissions = {Manifest.permission.ACCESS_COARSE_LOCATION};
            //验证是否许可权限
            for (String str : permissions) {
                if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                    //申请权限
                    this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                    return;
                }
            }
        }
    }

原文链接:https://blog.csdn.net/caidi1988314/article/details/79614315

完!!!

你可能感兴趣的:(android)