iOS documentation表示CBCentralManagerOptionShowPowerAlertKey
默认值为NO
。
我在实例化CBCentralManager
[[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_main_queue()];
但它仍然显示"打开蓝牙以允许......"提示。
这是文档中的错误,还是我做错了什么?
修改:
我发现了这个:
http://chris.cm/determine-whether-bluetooth-is-enabled-on-ios-passively/
而且:
似乎暗示您必须明确将CBCentralManagerOptionShowPowerAlertKey
设置为NO
,这表明文档中存在错误? 我只是想找人确认。
编辑2:
将CBCentralManagerOptionShowPowerAlertKey
设置为0
后,问题似乎已得到解决。 但我仍在寻找一些解释,因为文档说一件事并编程另一件事似乎非常不合逻辑。
答案 0 :(得分:0)
同样查看文档,在Programming Guide中创建一个经理,有以下段落:
创建中央管理员时,中央管理员会调用 centralManagerDidUpdateState:其委托对象的方法。你必须 实现此委托方法以确保蓝牙低能耗 支持并可在中央设备上使用。更多 有关如何实现此委托方法的信息,请参阅 CBCentralManagerDelegate协议参考。
我想知道如果状态是" PoweredOff"
,提示是否是该委托电话的一部分从逻辑上讲,这是有道理的,如果您正在启动并尝试通过蓝牙进行通信,这是用户期望的。他们可能没有蓝牙,这可以覆盖该用例,而不会强迫用户转到设置应用程序,然后才能使用您的应用程序。
答案 1 :(得分:0)
是的,你是对的,我现在在代码中有这种特殊的不一致。
文档说不应该是默认值,但不是这种情况,你必须强制它,默认行为是。