我使用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] 删除。
我来说两句