centralManagerDidUpdateState始终返回PoweredOff

时间:2017-10-03 09:05:04

标签: objective-c xcode bluetooth ios11

在我的应用程序中,我检查蓝牙是否打开,如果关闭,我会向用户显示警报以启用它。对于此功能,我使用centralManagerDidUpdateState并检查[中央状态]。在iOs 10设备上工作正常,但是,在iOs 11上工作时,总是返回CBCentralManagerStatePoweredOff:

1.-我进入配置,然后关闭蓝牙。

2.-我打开应用程序,调用centralManagerDidUpdateState回调并检测到PoweredOff。

3.-我进入配置,然后打开蓝牙。

4.-我回到应用程序,并且调用了centralManagerDidUpdateState,并且当蓝牙处于打开状态时,PoweredOff仍然是状态。

这个问题是iOs 11的错误吗?有人知道检查蓝牙是否开启的任何解决方案?

由于

1 个答案:

答案 0 :(得分:1)

我也面临同样的问题。我正在使用此示例项目测试BLE功能" https://github.com/jasonmgeorge/BLEScanner" iOS 10.3.3上的一个设备和iOS 11.2上的另一个设备。在iOS 10.3.3上它运行正常但在另一台设备上,我一直都遇到同样的错误。然后我意识到了

  

NSBluetoothPeripheralUsageDescription

不在Info.plist中,所以我补充道。我再次得到了#CBCentralManagerStatePoweredOff"。我去设置关闭蓝牙电源然后再打开。它神奇地工作。它最有可能是iOS 11的错误。请检查您的实施。它不是很一致,但有时它会起作用。