iOS CoreBluetooth被动地检查蓝牙是否启用,而不提示用户打开蓝牙

情况如下。 我有一个已被部署的应用程序被人们使用。 我正在考虑实施一些实验性的蓝牙低功耗function,但在此之前,我想对已经有蓝牙开启/closures蓝牙的用户数量进行一次“疯狂”的调查。 所以,我只想在后台查看这个信息,并且把已经有蓝牙的用户数量统计回服务器,而不用真的使用蓝牙通信。

我已经在我的应用程序中成功实例化了CBCentralManager ,并且可以在实例化之后立即检索蓝牙状态,并通过centralManagerDidUpdateState:更新蓝牙状态。 所以这一切都很好。 我遇到的问题是,如果状态是CBCentralManagerStatePoweredOff ,则设备会提示用户提示“打开蓝牙以允许[应用程序名称]连接到附件”。 这是我试图避免的这个提示。 在这个阶段,我只想调查一下蓝牙开启的用户数量 – 我不想使用蓝牙连接。

那么, 如果您不打算使用蓝牙连接是否有办法检查蓝牙状态而不提示用户?

iOS 7有一个新的options参数在创buildCBCentralManagerclosures。

我很喜欢早期iOS的解决scheme。

初始化CBCentralManager时,可以使用以下CBCentralManager

 NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO}; self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options]; 

如果有任何问题,我可能没有正确解释,请直接留言。