簡體   English   中英

如何使用 Qt 枚舉藍牙設備

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM