我已经看到,在iOS 5中,CoreBluetooth提供了检查蓝牙是否被禁用的功能。从我所看到的文档来看,它显然是针对蓝牙外设使用的。但是,我正在尝试检查蓝牙是否已打开,因为我正在使用GameKit(GKPeerPickerController
),如果未启用蓝牙连接将无限搜索,这是一个问题。
我试着这样做:
CBCentralManager * manager = [[CBCentralManager alloc] init];
if (manager.state == CBCentralManagerStatePoweredOn ) {
//go ahead with GameKit
}
这不起作用,manager.state
总是等于null。我在这做错了什么?或者,有没有更好的方法来检查iPhone上的蓝牙状态?
答案 0 :(得分:5)
好的,我发现这样做:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:FALSE], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
NSMutableArray * discoveredPeripherals = [NSMutableArray new];
CBCentralManager * manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
[manager scanForPeripheralsWithServices:discoveredPeripherals options:options];
[manager stopScan];
如果蓝牙关闭,系统将弹出一个警报视图,提供打开蓝牙的选项。否则,如果找到外围设备,它将调用相应的委托方法,但如果该实现中没有任何内容,则无需担心。
答案 1 :(得分:0)
您可以通过此link找到问题的答案。看看吧。
<强>被修改强>
您是否已查看Game Kit Framework reference?
根据Apple的说法:
Game Kit为您的应用程序提供了创建蓝牙的功能 两个设备之间的连接。
<强>被修改强>
然后尝试这个项目。 https://github.com/sergiomtzlosa/MultiContactsSelector-ios