iOS CoreBluetooth passively check if Bluetooth is enabled without prompting user to turn Bluetooth on

给你一囗甜甜゛ 提交于 2019-11-26 16:44:38

问题


The scenario is as follows. I have an already deployed app being used by people. I am considering implementing some experimental Bluetooth Low Energy features, but before I do, I want to conduct an "in the wild" survey of the number of users who already have Bluetooth turned on/leave Bluetooth on all the time. So, I would just like to check this in the background and send back to a server statistics on number of users with Bluetooth already on, without ever actually using Bluetooth communications.

I have successfully instantiated a CBCentralManager in my app and can retrieve the Bluetooth status both immediately after instantiation and when the Bluetooth state updates via centralManagerDidUpdateState:. So that is all good. The problem I am having is that if the state is CBCentralManagerStatePoweredOff, then the device brings up an alert prompting the user to "Turn On Bluetooth to Allow [app name] to Connect to Accessories". It is this prompt I am trying to avoid. At this stage I just wish to survey the number of users who leave Bluetooth On - I don't wish to use the Bluetooth connection.

So, is there a way to check the Bluetooth status without prompting the user if you don't intend on using the Bluetooth connection?


回答1:


iOS 7 has a new options parameter in the create of CBCentralManager to turn this off.

I'd love a solution for earlier iOS.




回答2:


You can use the following when you initialise the CBCentralManager.

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

I may have not explained it correctly, please right into the comment if there's any concern.



来源:https://stackoverflow.com/questions/16412866/ios-corebluetooth-passively-check-if-bluetooth-is-enabled-without-prompting-user

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!