我有一个应用程序(我不会将此应用程序提交给Apple应用程序商店),我想使用该应用程序检查蓝牙是否已打开。如果已打开,则必须显示警报。
- (void)centralManagerDidUpdateState:(CBCentralManager *)central{
switch (central.state) {
case CBCentralManagerStatePoweredOn:{
//alert view
break;
}
}
在
viewdidload
中,我确实是这样 CBCentralManager * manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
但这在带有iOS 5.1的ipad2中不起作用。
问题是
central.state
始终为null。我希望从ios 3.0到ios 6 beta都可以使用相同的方案。是否有用于检查蓝牙状态的通用代码。
欢迎使用任何可能的代码,甚至使用 private api的代码。
最佳答案
CBCentralManager
用于使用Bluetooth Smart(Bluetooth 4.0中的低能耗部分)。这是一项新技术,直到最近才在iOS / OS X设备中引入。当前支持在iPhone 4s和新iPad中。 iPad 2不支持此技术。而且CBCentralManager
仅在iOS 5及更高版本中可用。
如果要检查传统的蓝牙状态,则必须找到另一种方法。
在您的情况下,central.state
实际上应该等于CBCentralManagerStateUnsupported
。
关于ios - 在iOS中检查蓝牙状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12173344/