summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothlocaldevice_osx.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qbluetoothlocaldevice_osx.mm')
-rw-r--r--src/bluetooth/qbluetoothlocaldevice_osx.mm6
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;