问题描述
此代码允许确定当前的蓝牙状态:
This code allows to determine current bluetooth status:
CBCentralManager* testBluetooth = [[CBCentralManager alloc] initWithDelegate:nil queue: nil];
switch ([testBluetooth state]) {....}
但是,当 [[CBCentralManager alloc] init...] 发生时,如果蓝牙关闭,系统会向用户弹出警报.
But, when [[CBCentralManager alloc] init...] happens, system popups an alert to user, if bluetooth is off.
有没有什么方法可以在不打扰我的用户的情况下检查蓝牙状态?
推荐答案
我从一个苹果开发者那里得到了以下回复:在 iOS7 中,CBCentralManagerOptionShowPowerAlertKey
选项可以让你禁用这个警报.
I got the following response from an apple developer : In iOS7, the CBCentralManagerOptionShowPowerAlertKey
option lets you disable this alert.
如果你在初始化时有一个 CBCentralManager,你可以使用方法 initWithDelegate:queue:options
If you havea a CBCentralManager when you initialise it, you can use the method initWithDelegate:queue:options
示例:
在我的 .h 文件中,我有一个 CBCentralManager * manager
In my .h file i have a CBCentralManager * manager
在 .m 文件中:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], CBCentralManagerOptionShowPowerAlertKey, nil];
_manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
[_manager scanForPeripheralsWithServices:nil options:nil];
使用此代码,警告不再出现,希望对您有所帮助!
With this code the warning no longer appears, I hope that helps !
这篇关于iOS - 检查蓝牙是否打开而没有向用户弹出系统警报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!