方案如下。我有一个已经部署的应用程序被人们使用。我正在考虑实施一些实验性的蓝牙低功耗功能,但在此之前,我想对已经开启蓝牙/留蓝牙的用户数量进行“野外”调查时间。所以,我想在后台检查一下,然后发送回服务器的统计数据,显示蓝牙用户的数量,而不是实际使用蓝牙通信。
我已成功在我的应用中实例化CBCentralManager
,并且可以在实例化后立即检索蓝牙状态,并通过centralManagerDidUpdateState:
更新蓝牙状态。这一切都很好。我遇到的问题是,如果状态为CBCentralManagerStatePoweredOff
,则设备会显示一条警告,提示用户“打开蓝牙以允许[应用程序名称]连接到附件”。这是我试图避免的提示。在这个阶段,我只想调查离开蓝牙的用户数量 - 我不想使用蓝牙连接。
那么,有没有办法检查蓝牙状态而不提示用户是否打算使用蓝牙连接?
答案 0 :(得分:10)
iOS 7在创建options
时有一个新的CBCentralManager
参数可以关闭此功能。
我喜欢早期iOS的解决方案。
答案 1 :(得分:10)
初始化CBCentralManager
时,您可以使用以下内容。
NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO};
self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
我可能没有正确解释,如果有任何疑虑,请直接进入评论。