14

场景如下。我有一个已经部署的应用程序正在被人们使用。我正在考虑实施一些实验性的低功耗蓝牙功能,但在此之前,我想对已经开启/一直开启蓝牙的用户数量进行“野外”调查。因此,我只想在后台检查这一点,并将已启用蓝牙的用户数量的统计信息发送回服务器,而实际上并未使用蓝牙通信。

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

那么,如果您不打算使用蓝牙连接,有没有办法在不提示用户的情况下检查蓝牙状态?

4

2 回答 2

12

iOS 7options在创建时有一个新参数CBCentralManager来关闭它。

我喜欢早期 iOS 的解决方案。

于 2013-10-14T19:10:52.400 回答
12

初始化时可以使用以下内容CBCentralManager

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

我可能没有正确解释它,如果有任何疑问,请直接进入评论。

于 2014-05-17T08:04:03.170 回答