支持BLE 4.0的所有设备是否都可以连接到我支持BLE 4.0的iOS设备上?

5

关于蓝牙低功耗技术。我知道iPhone 4S、iPhone 5和iPad 3使用iOS 5.1以上的版本支持BLE 4.0。我也阅读了苹果公司提供的温度传感器示例代码。我的问题是这种传感器有什么要求?换句话说,哪些类型的传感器可连接到此应用程序中?所有支持BLE 4.0的设备都可以连接到我所使用的支持BLE 4.0的iOS设备吗?

2个回答

10

BLE(蓝牙低功耗)通信基于GATT(通用属性),它本质上是在服务下交换不同特征值的过程。如果您阅读过TemperatureSensor示例代码,您一定已经看到它开始根据服务UUID来发现设备,然后在服务下基于UUID读写特征。因此,只要传感器支持BLE且您了解其服务(其UUID、特征和属性),您就可以编写iOS应用程序与其通信。其中一些服务由蓝牙SIG预定义,因此您可以在蓝牙SIG网站上找到这些服务的信息。


UUID这个问题还不是很清楚。你的意思是我在连接之前必须知道BLE设备(传感器)的UUID吗?不同的BLE设备有不同的UUID吗?换句话说,当我购买一个新的BLE设备时,它应该提供一个UUID,以便我在连接之前将其添加到我的程序中吗?谢谢。 - Bagusflyer
6
在BLE中,每个设备、服务和特征都被分配一个UUID。但是您不需要知道设备的UUID才能连接它们。相反,您可以始终扫描附近的设备并连接到它们,然后在该外围设备上扫描服务。但是,您最好知道服务UUID以识别提供此服务的设备。例如,如果您知道“温度”服务的UUID为0xabcd,则只需调用带有UUID 0xabcd作为参数的“scanForPeripheralsWithServices:”函数来处理提供该服务的外围设备。 - blackhogz

8

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

关于您提到的示例代码,它会寻找用于温度传感器的特定服务UUID:

[centralManager scanForPeripheralsWithServices:uuidArray options:options];

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

[centralManager scanForPeripheralsWithServices:nil options:options];

要进行实验,你可以使用应用程序LightBlueiTunes链接,这些应用程序允许你将你的iPhone变成一个外设,并定义任何服务/特性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接