Qt как получить информацию о сопряженном Bluetooth-устройстве на android - PullRequest
0 голосов
/ 18 июня 2020

Я разрабатываю приложение для android с использованием Qt 5.15.0. На моем устройстве android, когда я go в Настройки-> Bluetooth , я вижу список сопряженных устройств. Теперь я хотел бы получить информацию об этих устройствах, например MacAddress и name , но я не могу найти способ сделать это. Я пробовал с QBluetoothLocalDevice :: connectedDevices () и с QBluetoothLocalDevice :: allDevices () . Я также попытался запустить сканирование с помощью QBluetoothDeviceDiscoveryAgent :: start () , но когда сканирование завершилось, я получил QBluetoothDeviceDiscoveryAgent :: DiscoveryDevices () Я получаю только новые несопряженные устройства.

необходимо, это мой код:

#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();
}

Итак, как я могу получить уже сопряженные устройства? Что мне не хватает?

Заранее спасибо!

...