QtBluetooth Win10, как проверить, доступен ли адаптер Bluetooth и включен ли? - PullRequest
1 голос
/ 09 апреля 2019

Я использую QtBluetooth под Win10. Работает нормально.

Однако, поскольку мое приложение развернуто как на ноутбуках (которые могут иметь или не иметь адаптер BT), так и на настольных компьютерах (которые, вероятно, не имеют адаптера), я хотел бы программно проверить, доступен ли адаптер или нет (присутствует и включено).

Учитывая документацию, я протестировал 4 функции:

bool isBluetoothAvailable1()
{
    return !QBluetoothLocalDevice::allDevices().empty();
}

bool isBluetoothAvailable2()
{
    QBluetoothLocalDevice localDevice;
    return localDevice.isValid();
}

bool isBluetoothAvailable3()
{
    std::shared_ptr<QLowEnergyController> created( QLowEnergyController::createPeripheral() );
    if ( created )
    {
        if ( !created->localAddress().isNull() )
            return true;
    }
    return false;
}

bool isBluetoothAvailable4()
{
    std::shared_ptr<QLowEnergyController> created( QLowEnergyController::createCentral( QBluetoothDeviceInfo() ) );
    if ( created )
    {
        if ( !created->localAddress().isNull() )
            return true;
    }
    return false;
}

Но когда я запускаю свой код на ноутбуке с Win10, они все возвращают false! Даже если я могу найти подключенное удаленное устройство, используя QBluetooth API.

Какой правильный способ узнать, доступен ли адаптер BLE?

...