Kotlin 应用程序无法连接到蓝牙插座(ESP32S 设备)

问题描述 投票:0回答:1
val device: BluetoothDevice = bluetoothAdapter.getRemoteDevice(deviceAddress)
        val uuid: UUID = UUID.fromString(uuidString)
        try {
            bluetoothSocket = device.createRfcommSocketToServiceRecord(uuid)
            Log.d("BluetoothHelper", "Socket created: $bluetoothSocket")
            bluetoothSocket.connect()
            Log.d("BluetoothHelper", "Socket connected: $bluetoothSocket")
            inputStream = bluetoothSocket.inputStream
        } catch (e: Exception) {
            e.printStackTrace()
            Log.d("BluetoothHelper", "Socket failed!!!!!!!!!!!! $bluetoothSocket")
        }

我正在尝试通过蓝牙将我的应用程序连接到 ESP32S 设备,但 connect() 函数似乎不起作用。套接字创建和失败的日志被打印出来并连接显然没有。从我从调试中收集到的信息来看,bluetoothSocket确实适当地更改了它的值并保存了分配给它的设备(uuid和deviceAddress都是硬编码的)以及OutputStream获得了一些值,但连接没有发生并且inputStream保持为空。我唯一尝试过的就是反转 uuid,因为我在我的 cpp 代码中使用了字节数组,在我的 Kotlin 应用程序中使用了字符串,但这没有帮助。如果其他功能都正常的话,还会有什么问题呢?如果我不给它任何以前在已传递的函数中未使用的附加参数,我怎么可能影响 connect() 呢?另外,我正在使用 BLE。

[Values after running the app

Values after running the app

android kotlin bluetooth bluetooth-lowenergy esp32
1个回答
0
投票

您提供的代码适用于经典蓝牙,因此不适用于 BLE 设备 ESP32S。对于 BLE,您需要使用 connectGatt() 函数。请参阅下面的链接了解更多信息:-

© www.soinside.com 2019 - 2024. All rights reserved.