最近在开发蓝牙,发现在 Android 10 的设备上,只能扫描到已配对的设备,没匹配的设备,扫描不到,就广播没回调到;BLE 低功耗也扫描不到。
根据官网,已经添加了:ACCESS_FINE_LOCATION 精准定位了
还是不行,google 了一波,发现在
https://github.com/E。ddyVerbruggen/nativescript-bluetooth/issues/173 找到答案
开启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()
}
}