我正在寻找一种通过 BTLE 区分硬件设备的方法。我很愿意使用任何系统(Estimote、Gimbal 等),但我需要在握手之前找到一种方法来识别设备。
例如:如果一个区域有 20 个启用 BTLE 的设备,我想在任何广播之前唯一地识别它们。
我正在寻找一种通过 BTLE 区分硬件设备的方法。我很愿意使用任何系统(Estimote、Gimbal 等),但我需要在握手之前找到一种方法来识别设备。
例如:如果一个区域有 20 个启用 BTLE 的设备,我想在任何广播之前唯一地识别它们。
标准 iBeacons 正是这样做的。他们宣传一个唯一的三部分标识符(Proximity UUID/major/minor),无需握手即可读取。它可在 iOS、Android、Mac 和 Linux 平台上检测到。三部分标识符在 BLE 广告中以明文形式发送。
此处提供有关此广告格式的更多详细信息:什么是 iBeacon 蓝牙配置文件
无耻的插头:我的公司生产的信标和服务可以与任何标准 iBeacon 配合使用,并且可以与其他供应商的标准 iBeacon 产品互换。有关我们的信标和服务的更多信息,请访问: http ://www.radiusnetworks.com
听起来你想提前知道什么 UUID 与哪个硬件供应商匹配,所以如果你看看你是否可以说“嘿,它是云台!” 或者“嘿,这是一个 Gelo!”
在大多数情况下,您可以较少关心主要和次要。您对 UUID 最感兴趣。这意味着您需要扫描所有这些 UUID,然后查看 CoreLocation 范围内的外围设备,以了解它属于哪个产品系列。
这样做的一个问题是,一些供应商使用轮换 UUID 方案来减轻与信标欺骗相关的安全风险。这将对识别他们的硬件设备构成挑战。
您可能遇到的另一个问题是,在您看到想要停止收听(或作为中心扫描)然后转身广播(作为外围设备)的设备之后,这听起来像是。这意味着你会经常在两个角色之间来回切换。
目前还不完全清楚你想要做什么,所以希望在某种程度上这会有所帮助。