Android:BLE 蓝牙无法连接到设备

时间:2021-01-13 08:58:48

标签: android bluetooth-lowenergy

我正在扫描具有特定服务 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

如何以编程方式解决此错误

0 个答案:

没有答案