iOS的CoreBluetooth被动检查蓝牙不提示用户打开蓝牙启用(iOS CoreBluetoo

2019-09-02 03:00发布

该方案如下。 我已经被人们所使用的已部署应用程序。 我正在考虑实施一些实验蓝牙低功耗的特点,但我做之前,我要进行谁已经开启蓝牙功能的用户数量的“野生”的调查中/离开所有的时间蓝牙。 所以,我只是想在后台检查并发送回服务器的统计数据与蓝牙已经在用户数量,却从来没有使用蓝牙通信。

我已成功实例化一个CBCentralManager在我的应用程序和两个实例后,当立即通过蓝牙状态更新可以检索蓝牙状态centralManagerDidUpdateState: 所以这是所有好的。 我遇到的问题是,如果国家是CBCentralManagerStatePoweredOff ,则设备会弹出一个警告,提示用户“开启蓝牙,以便允许[应用程序名称]连接到附件”。 正是这种提示我试图避免的。 在这个阶段,我只希望调查谁离开蓝牙的用户数量 - 我不希望使用蓝牙连接。

那么, 有没有一种方法来检查蓝牙状态,而不提示,如果你不使用蓝牙连接打算的用户?

Answer 1:

的iOS 7有一个新的options中创建的参数CBCentralManager关闭这个功能。

我很想对早期的iOS解决方案。



Answer 2:

当您初始化,您可以使用以下CBCentralManager

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

我可以,如果有任何担心都没有正确地解释它,请用右键进入评论。



文章来源: iOS CoreBluetooth passively check if Bluetooth is enabled without prompting user to turn Bluetooth on