我正在使用Qt 5.15.0开发适用于android的应用程序。在我的android设备上,当我进入 Settings-> Bluetooth 时,我可以看到已配对设备的列表。现在,我想获取有关这些设备的信息,例如 MacAddress 和 name ,但是我找不到解决方法。 我尝试了 QBluetoothLocalDevice :: connectedDevices() 和 QBluetoothLocalDevice :: allDevices() 。 我还尝试使用 QBluetoothDeviceDiscoveryAgent :: start() 开始扫描,但是当扫描完成时,我得到了 QBluetoothDeviceDiscoveryAgent :: discoveredDevices() 我只能得到未配对的新设备。
是否有必要这是我的代码:
#include <QDebug>
Dispositivi::Dispositivi(QObject *parent) : QObject(parent)
{
qDebug() << "Inizializzazione Dispositivi";
availableDevices.clear();
discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
connect(discoveryAgent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)), this, SLOT(addDevice(QBluetoothDeviceInfo)));
connect(discoveryAgent, SIGNAL(finished()), this, SLOT(scanFinished()));
localDevice = new QBluetoothLocalDevice();
QList<QBluetoothAddress> bluetooth = localDevice->connectedDevices();
for(QBluetoothAddress dev : bluetooth)
{
qDebug() << "Device Mac: " << dev.toString() /*<< " Name: " << dev.name()*/ << " Pairing Status: " << localDevice->pairingStatus(dev);
}
}
Dispositivi::~Dispositivi()
{
delete discoveryAgent;
delete localDevice;
}
void Dispositivi::signalFromQml()
{
qDebug() << "Arrivato il segnale";
}
void Dispositivi::startScan()
{
devicesModel.clear();
discoveryAgent->start();
}
AvailableDevicesModel *Dispositivi::availableDevicesFound()
{
return &devicesModel;
}
void Dispositivi::addDevice(const QBluetoothDeviceInfo &info)
{
}
void Dispositivi::scanFinished()
{
qDebug() << "Finito lo scan";
for (int i = 0; i < availableDevices.size(); i++)
{
devicesModel.insertDevice(availableDevices.at(i));
}
QList<QBluetoothDeviceInfo> bt_found = discoveryAgent->discoveredDevices();
for (QBluetoothDeviceInfo dev : bt_found)
{
qDebug() << "Device Mac: " << dev.address().toString() << " Name: " << dev.name() << " Pairing Status: " << localDevice->pairingStatus(dev.address());
}
emit scanHasFinished();
}
那么我该如何获取已经配对的设备?我想念什么?
谢谢!