【问题标题】:Are all the devices which support BLE 4.0 can be connected in my iOS devices which support BLE 4.0?我支持BLE 4.0的iOS设备是否可以连接所有支持BLE 4.0的设备?
【发布时间】:2012-10-08 18:01:52
【问题描述】:

关于低功耗蓝牙。我知道带有 iOS 5.1 及更高版本的 iPhone 4S、iPhone 5、iPad 3 支持 BLE 4.0。我从 Apple 阅读了示例代码 TemperatureSensor。我的问题是对传感器有什么要求?换句话说,在这个应用程序中可以连接什么样的传感器?所有支持BLE 4.0的设备都可以连接到我支持BLE 4.0的iOS设备上吗?

【问题讨论】:

    标签: ios core-bluetooth bluetooth-lowenergy


    【解决方案1】:

    BLE通信基于GATT(General Attributes),本质上是一个服务下不同特征值的交换。如果您阅读过 TemperatureSensor 示例代码,您一定已经看到它开始根据服务 UUID 发现设备,然后在服务下仍然基于 UUID 读/写特征。因此,只要传感器支持 BLE 并且您了解它的服务(它的 UUID、它的特性和属性),您就可以对您的 iOS 应用程序进行编程以与之通信。有些服务是蓝牙 SIG 预定义的,所以你可以在Bluetooth SIG website找到这些服务的信息。

    【讨论】:

    • 有一点关于 UUID 不是很清楚。你的意思是我必须在连接之前知道 BLE 设备(传感器)的 UUID 吗?不同的BLE设备有不同的UUID?或者换句话说,当我购买一个新的 BLE 设备时,它应该提供一个 UUID,以便我可以在连接之前将 id 添加到我的程序中?谢谢。
    • @bagusflyer 在 BLE 中,所有内容(设备、服务、特征)都分配有 UUID。但是您无需知道设备 UUID 即可连接到它们。相反,您始终可以扫描附近的设备并连接到它们,然后扫描该外围设备上的服务。但是您最好知道服务 UUID 以识别提供此服务的人。例如,如果您知道 SERVICE 'temperature' 的 UUID 是 0xabcd,那么您只能处理那些提供服务购买调用 'scanForPeripheralsWithServices:' 的外围设备,并将 UUID 0xabcd 作为此函数的参数。
    【解决方案2】:

    是的,您可以将任何 BLE 设备连接到支持 BLE 的 iOS 设备。

    关于您正在谈论的示例代码,它会查找温度传感器的特定服务 UUID:

    [centralManager scanForPeripheralsWithServices:uuidArray options:options];
    

    由于市场上没有我能找到的温度传感器,您可能希望使用 nil 来扫描任何和所有设备:

    [centralManager scanForPeripheralsWithServices:nil options:options];
    

    要对此进行试验,您可以使用应用程序LightBlueiTunes Link,它可以让您将您的 iPhone 变成具有您定义的任何服务/特征的外围设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多