在我的应用程序中,我检查蓝牙是否打开,如果关闭,我会向用户显示警报,以便启用它。对于此功能,我使用centralManagerDidUpdateState并检查中心状态。在iOs 10上,设备工作正常,但在iOs 11上不工作,执行此操作后始终返回CBCentralManagerStatePoweredOff:
1.-我去做配置,然后关掉蓝牙。
2.-我打开应用程序,调用centralManagerDidUpdateState回调,并检测到PoweredOff。
3.-我去做配置,打开蓝牙。
4.-我回到应用程序,centralManagerDidUpdateState被调用,而PoweredOff仍然是蓝牙打开时的状态。
这个问题是iOs 11的错误吗?有人知道有什么解决方案可以检查蓝牙是否打开吗?
谢谢
发布于 2017-12-22 10:35:28
我也面临着同样的问题。我使用这个示例项目"https://github.com/jasonmgeorge/BLEScanner“测试BLE功能--一个设备在iOS 10.3.3上,另一个在iOS 11.2上。在iOS 10.3.3上,它工作正常,但在另一个设备上,我总是收到相同的错误。然后我意识到
NSBluetoothPeripheralUsageDescription
不是在Info.plist,所以我补充说。我又得到了"CBCentralManagerStatePoweredOff“。我去设置断电蓝牙和再次打开。它神奇地起作用了。这很可能是iOS 11的一个bug。请检查你的执行情况。这并不是很一致,但有时是有效的。
https://stackoverflow.com/questions/46540944
复制相似问题