我正在使用Qt的QBluetoothSocket类将一副蓝牙耳机连接到我的windows pc,如下所示:
device->connectToService(QBluetoothAddress(device1Info[1]), QBluetoothUuid(QBluetoothUuid::SerialPort));断开我使用的耳机:
if (device->state() == QBluetoothSocket::ConnectedState) {
device->disconnectFromService();
}它们连接得很好,但当我选择断开它们时,它们实际上并没有断开连接。disconnect信号被发出,这意味着插座确实断开了服务,但当我在Windows设置中检查我的设备时,耳机仍然注册为已连接并正常工作。这会不会是因为我在连接到serive时使用QBluetoothUuid::SerialPort作为QBluetoothUuid?还是别的什么?
发布于 2020-12-07 08:52:20
断开并不会断开设备的连接,而只是断开插座。这就像您关闭了一个网络插座-它不会断开您的PC与网络的连接:)
我不能重现成功的连接--除非你的耳机提供串口调试服务或者别的什么。
我的猜测是,你的整个程序什么都不做,因为耳机不提供串口,而且操作系统通常会立即将音频设备连接到耳机的音频服务,所以你无法连接到它。
我认为你想得太多了:你不需要在这里使用任何蓝牙API。您只需使用音频设备API找到耳机并通过它们执行音频I/O。不过,我不确定Qt会对你有所帮助。在Qt的多媒体API中查找枚举音频设备的方法。否则,您将需要使用OS API调用或某个音频访问库。
https://stackoverflow.com/questions/65173696
复制相似问题