Qt/C++ 连接到经典蓝牙设备

Qt/C++ Connect to Classic Bluetooth device

我正在尝试在 Qt 中将蓝牙扬声器配对并连接到我的设备。 Qt 提供了 QBluetoothLocalDevice 我需要的配对功能,这对我的目的来说效果很好。但是配对后我找不到连接扬声器的方法。

我需要连接到它,所以在调用 pactl list sinks 时我会看到播放所需的接收器。 class QBluetoothLocalDevice 为 deviceConnected 和 disconnected 提供信号,但它没有连接方法。在指向 QBluetoothLocalDevice 的指针被破坏后,我最好让连接仍然存在。

有人知道如何解决这个问题吗?

目前似乎无法在 QT 中以编程方式执行此操作。

您将不得不使用 DBus API 向 Bluez 发送连接请求。

作为一个简单的解决方法,您可以 运行 bluetoothctl 如果您的系统中安装了它:

QProcess process;
process.setProcessChannelMode(QProcess::SeparateChannels);
process.start("bluetoothctl");
process.waitForStarted();
process.write(QString("connect %1\n").arg(address).toUtf8());
process.closeWriteChannel();
process.waitForFinished();