我在Win10下使用QtBluetooth
。效果很好。
但是,由于我的应用程序既部署在笔记本电脑(可能有也可能没有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适配器是否可用的正确方法是什么?