[英]How to enumerate Bluetooth devices using Qt
我想搜索可用的藍牙設備並列出它們,但我從文檔中遵循的代碼不起作用。
BluetoothDevices::BluetoothDevices(QObject *parent) : QObject(parent)
{
}
// search Bluetooth devices
void BluetoothDevices::startDeviceDiscovery()
{
qDebug() << "Bluetooth discovery started";
// Create a discovery agent and connect to its signals
//QBluetoothDeviceDiscoveryAgent *discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this);
discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this);
connect(discoveryAgent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)),
this, SLOT(deviceDiscovered(QBluetoothDeviceInfo)));
// Start a discovery
discoveryAgent->start();
}
void BluetoothDevices::deviceDiscovered(const QBluetoothDeviceInfo &device)
{
qDebug() << "Found new device:" << device.name() << '(' << device.address().toString() << ')';
}
在主窗口中,我開始搜索:
void MainWindow::on_pushButtonSearchBluetooth_clicked()
{
bluetoothDevices.startDeviceDiscovery();
}
我希望deviceDiscovered()
插槽在找到時使用設備名稱被調用,但該插槽永遠不會被調用。 在開始發現之后,我再也沒有收到任何回復。 當我從控制面板手動搜索藍牙設備時,它確實找到了幾台筆記本電腦。 我還需要做什么才能通過我的應用找到它們?
我正在使用 Windows 7 和 Qt 5.5。
我也有同樣的問題。 您可以連接信號connect(m_discoveryAgent, SIGNAL(error(QBluetoothServiceDiscoveryAgent::Error)), this, SLOT(error(QBluetoothServiceDiscoveryAgent::Error)));
您可以看到該插槽發出錯誤 InvalidBluetoothAdapterError。 我在 WIN7 和 WIN10 上嘗試過,但沒有成功。 在 Ubuntu 中,相同的代碼可以正常工作。
windows平台似乎不支持藍牙。
目前,該 API 支持以下平台:Android、iOS、Linux (BlueZ 4.x/5.x) 和 OS X。來自http://doc.qt.io/qt-5/qtbluetooth-index.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.