ios - 在iOS中检查蓝牙状态

标签 ios bluetooth ios6 iphone-privateapi

我有一个应用程序(我不会将此应用程序提交给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/

相关文章:

ios - 条件为 "one time"

objective-c - 声音效果未播放

android - 蓝牙 LE 设备发现服务

android - 当检测到与已知蓝牙设备的连接时,是否有可能触发 ios/android 应用程序启动?

ios - XCode 4.5.1,应用程序窗口预计在应用程序启动结束时有一个 Root View Controller

ios - 如何观察UIControl的touchInside属性?

ios - 第三方SDK集成前需要考虑哪些安全参数

c# - 是否有 Windows 事件来查明蓝牙设备是否正在配对

objective-c - 包含在多个类中时的 iOS 6 外观

ios - NSAttributedString 多行给出错误的高度?