Qt DisconnectFromService()是否无法真正断开蓝牙设备的连接?

安全

我使用Qt的QBluetoothSocket类将一对蓝牙耳机连接到Windows pc,如下所示:

device->connectToService(QBluetoothAddress(device1Info[1]), QBluetoothUuid(QBluetoothUuid::SerialPort));

并断开我使用的耳机:

if (device->state() == QBluetoothSocket::ConnectedState) {
    device->disconnectFromService();
}

它们连接良好,但是当我选择断开它们的连接时,它们实际上并没有断开连接。发出断开信号,这意味着套接字确实断开了服务,但是当我在Windows设置中检查我的设备时,耳机仍会注册为已连接并具有相同的行为。可能是因为我QBluetoothUuid::SerialPort在连接到Serive时用作QBluetoothUuid吗?或者是其他东西?

温斯莫妮卡

断开连接不会断开设备,它只会断开套接字。就像您关闭了网络插座一样-它不会断开PC与网络的连接:)

但是,我无法成功重现连接-除非您的耳机确实提供了用于调试之类的串行端口服务,否则无法进行。

我的猜测是您的整个程序什么都不做,因为耳机不提供串行端口,而且操作系统通常会立即将音频设备连接到耳机的音频服务,因此您将无法连接到该设备。

我认为您想得太过分了:您无需在此处使用任何蓝牙API。您需要使用音频设备API查找耳机并通过它们进行音频I / O。我不确定Qt是否会帮助您。在Qt的多媒体API中查找枚举音频设备的方法。否则,您将需要使用OS API调用或某些音频访问库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章