如何获取核心蓝牙外设的真实UUID?

4
在iOS 7中,我正在编写一个核心蓝牙应用程序,以获取一系列外围设备的广播包。每个外围设备在其广播包中都有一个唯一的UUID,并显示在LightBlue嗅探器应用程序中。
当我在中央管理器中检测到外围设备时,它会分配一个与广播包中UUID不同的UUID。
根据文档:
“第一次发现外围设备时,系统会分配一个UUID,表示为新的NSUUID对象。您的应用程序可以存储此UUID,并稍后提供给中央管理器以用于检索此特定外围设备。外围设备由NSUUID UUID标识,而不是标识外围设备服务、特征和特征的CBUUID对象。”
为什么要这样做?
我能否在不连接设备的情况下读取真实的外围设备UUID?
如何做到?
2个回答

3
我认为“真正的外围设备UUID”这一说法是不存在的。我的理解是,UUID(针对设备/外围设备)是苹果特有的概念,而不是BLE的概念。请注意以下讨论:Corebluetooth, How to get a unique UUID? 另一方面,似乎BLE设备确实具有IEEE定义的独特MAC/BDADDR地址。我正在寻找一种在各个平台上部署平台无关的静态配置BLE设备的方法。我曾经灰心丧气(因为苹果的UUID几乎没有意义,而且其他大多数/全部平台都可以获取的MAC/BDADDR无法从CoreBluetooth中访问)。幸运的是,我注意到“设备信息服务”(0x180A)档案包含一个“系统ID”属性(0x2A23),该属性编码了设备的唯一MAC/BDADDR地址。我不知道BLE设备是否必须公开此服务。

0

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