Android 10 扫描蓝牙失败问题

最近在开发蓝牙,发现在 Android 10 的设备上,只能扫描到已配对的设备,没匹配的设备,扫描不到,就广播没回调到;BLE 低功耗也扫描不到。

根据官网,已经添加了:ACCESS_FINE_LOCATION 精准定位了
Android 10 扫描蓝牙失败问题_第1张图片

还是不行,google 了一波,发现在
https://github.com/E。ddyVerbruggen/nativescript-bluetooth/issues/173 找到答案
Android 10 扫描蓝牙失败问题_第2张图片
开启gps后,就扫描到其他设备了,强制开启 gps 有点不优雅,可以添加个提示,让用户自己去开启,比如:

 //在 Android 10 还需要开启 gps
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            val lm:LocationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
            if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){
                Toast.makeText(this@MainActivity, "请您先开启gps,否则蓝牙不可用", Toast.LENGTH_SHORT).show()
            }
        }

你可能感兴趣的:(Android-杂记,蓝牙,Android10)