如何解决Android:BLE 蓝牙无法连接到设备
我正在扫描具有特定服务 UUID 的设备、功能扫描、找到设备并连接。
我每 2 分钟连接一次设备,持续 20 秒。
一切正常。
一段时间后,手机不再连接到设备。
设备已找到但未命名。 我必须关闭蓝牙并手动打开它
然后它再次起作用。
当我以编程方式关闭并打开蓝牙时,它不起作用。
我猜是缓存问题? ...
private fun startScan() {
if (isScanning) return
log("Start scanning for ${searchedDevice?.uuid.toString()}...")
val builder: ScanFilter.Builder = ScanFilter.Builder()
searchedDevice?.let {
builder.setServiceUuid(ParcelUuid.fromString(it.uuid.toString()))
}
val filter: ScanFilter = builder.build()
val settings = ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.setReportDelay(200)
.build()
isScanning = true
bluetoothLeScanner.startScan(listOf(filter),settings,scanCallback)
}
onBacthScan:
override fun onBatchScanResults(results: MutableList<ScanResult>?) {
super.onBatchScanResults(results)
results?.firstOrNull()?.let {
connectToPeripheral(it.device,connectionCompletion)
}
}
}
连接:
override fun onConnectionStateChange(gatt: BluetoothGatt?,status: Int,newState: Int) {
super.onConnectionStateChange(gatt,status,newState)
我得到状态 133 是什么?
编辑: 错误 133 是:
case 0x0085:
return "GATT ERROR"; // Device not reachable
如何以编程方式解决此错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。