Я использую 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?