我将编写一个蓝牙智能外围设备,但我不太确定如何实现它。
外围设备只能连接到一个中央设备。在(一般可连接的)广告(使用广告数据)期间,可以告诉这个外围设备不接受来自每个人的连接吗?
显然,在第一次连接之前,外围设备必须是“公共的”(对于任何中心设备来说都是可见的和可连接的),但在此之后,它只对与该中心设备的连接感兴趣。这不是隐私或安全问题,我只是试图不污染其他扫描中心设备的扫描结果。
我正在读这本书“蓝牙低能-开发者手册”,由罗宾海登,其中涵盖一般蓝牙智能。它提到了“旗帜广告”的广告数据。这是我要找的吗?这本书还提到了“结合”,据我所知,这只是一种长期的安全关系。我不需要加密的链接,私人地址或签名的写信,但它是否建议使用键无论如何在我的情况下?
发布于 2016-10-20 15:37:01
写完这个问题之后,我学到了更多的蓝牙技术,而且没有人回答,所以我在这里写了一个答案。
两个器件之间的长时间关系是通过键合来完成的。键连接导致两个设备交换和保存密钥,这些密钥将用于进一步的连接以相互验证。此外,密钥用于加密行。
如果一个普通的广告外设想要针对某个特定的中心,它会用广告数据来实现这一点。核心规范补充(CSS) v6有两种可用于此目的的数据类型:公共目标地址(1.13)和随机目标地址(1.14)。或者作为一名开发人员,您可以以某种方式将您喜欢的任何内容转化为特定于制造商的数据。
由于广告外围设备的目标是某个特定的设备,它可能会阻止与其他中心的连接。为此,请使用白名单。将您要瞄准的中心地址放入白名单,将筛选策略设置为只允许从白名单中的设备连接,然后开始广告。但有一个问题:外围需要解决中央的地址,以确保它是以前的债券。在蓝牙4.2之前,这必须手动完成(在应用中)。相反,4.2规范这是自动为你做的吗:将键中心也放入解决列表中,链接层也将进行解析。
https://stackoverflow.com/questions/34964757
复制相似问题