此代码允许确定当前的蓝牙状态:

CBCentralManager* testBluetooth = [[CBCentralManager alloc] initWithDelegate:nil queue: nil];


switch ([testBluetooth state]) {....}

但是,当[[CBCentralManager alloc] init ...]发生时,如果蓝牙已关闭,则系统会向用户弹出警报。

有什么方法可以在不打扰我的用户的情况下检查蓝牙状态?

最佳答案

我从苹果开发人员处收到以下答复:在iOS7中,CBCentralManagerOptionShowPowerAlertKey选项可让您禁用此警报。

如果在初始化时具有CBCentralManager,则可以使用initWithDelegate:queue:options方法

例子:

在我的.h文件中,我有一个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];

有了此代码,警告不再出现,希望对您有所帮助!

10-07 21:24