Android10 BLE蓝牙4.0扫描不到设备

在Android 6.0及以上版本中开启蓝牙扫描后扫描不到数据问题
在Android 6.0之前的版本中能够完美运行,但换到Android 6.0 及以上系统的手机运行时搜索不到数据。
这是因为在Android 6.0及以上系统中低功耗蓝牙添加了距离检测功能,所以扫描时需要开启定位功能权限,在更高版本中甚至需要开启精准定位权限

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 // Android 6.0动态请求权限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE
                    , Manifest.permission.READ_EXTERNAL_STORAGE
                    , Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION};
            for (String str : permissions) {
                if (checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                    requestPermissions(permissions, 111);
                    break;
                }
            }
        }
    }

把各种权限问题解决之后,在Android 6.0之前扫描没问题,在之后扫描不到数据问题也随之解决

你可能感兴趣的:(android)