diff options
Diffstat (limited to 'src/bluetooth/qbluetoothlocaldevice_osx.mm')
-rw-r--r-- | src/bluetooth/qbluetoothlocaldevice_osx.mm | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/bluetooth/qbluetoothlocaldevice_osx.mm b/src/bluetooth/qbluetoothlocaldevice_osx.mm index 38f15b8c..7e5cb12a 100644 --- a/src/bluetooth/qbluetoothlocaldevice_osx.mm +++ b/src/bluetooth/qbluetoothlocaldevice_osx.mm @@ -120,7 +120,11 @@ QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(QBluetoothLocalDevice QT_BT_MAC_AUTORELEASEPOOL; HostController defaultController([[IOBluetoothHostController defaultController] retain]); - if (!defaultController) { + if (!defaultController || [defaultController powerState] != kBluetoothHCIPowerStateON) { + // IOBluetooth can return non-null host controller without working adapter. + // Unfortunately, a local device in such a state is totally useless: + // you can not access any information like address/name or change the device + // state to powered on. So it's not valid. qCCritical(QT_BT_OSX) << "QBluetoothLocalDevicePrivate(), failed to " "init a host controller object"; return; |