Java 是否有任何方法可以唯一标识可扩展设备?
我想在本地存储有关BLE设备的信息,但我不能依赖MAC地址,因为它变化太频繁。有什么方法可以做到这一点吗?蓝牙地址是区分设备的最佳方式。这在蓝牙规范中提到如下[1]: 使用设备地址标识设备。设备地址可能是 公共设备地址或随机设备地址。公众 设备地址和随机设备地址的长度均为48位 正如Mike提到的,有几种类型的MAC地址,正在更改的不是您想要查看的那个。蓝牙规范确定了以下地址:-Java 是否有任何方法可以唯一标识可扩展设备?,java,bluetooth-lowenergy,rxandroidble,Java,Bluetooth Lowenergy,Rxandroidble,我想在本地存储有关BLE设备的信息,但我不能依赖MAC地址,因为它变化太频繁。有什么方法可以做到这一点吗?蓝牙地址是区分设备的最佳方式。这在蓝牙规范中提到如下[1]: 使用设备地址标识设备。设备地址可能是 公共设备地址或随机设备地址。公众 设备地址和随机设备地址的长度均为48位 正如Mike提到的,有几种类型的MAC地址,正在更改的不是您想要查看的那个。蓝牙规范确定了以下地址:- 公共地址:这是根据IEEE 802-2014标准创建的唯一地址。对你来说,这是与你的答案相关的地址 随机静态地址:
- 公共地址:这是根据IEEE 802-2014标准创建的唯一地址。对你来说,这是与你的答案相关的地址
- 随机静态地址:这是一个随机生成的地址,除非设备断电,否则不会更改。因此,如果您的设备未通电,您可以使用此地址来识别它
- 专用可解析地址:这是一个不断变化的MAC地址(变化频率取决于应用程序),如果已知IRK(即,如果设备配对),则可以解析该地址并将其与设备的唯一地址关联
- 专用不可解析地址:这是一个不断变化的MAC地址(变化频率取决于应用程序),无法解析,也无法与设备的唯一地址关联。这种地址通常用于设备仅播发广告时的安全原因李>
[1] 蓝牙核心规范版本5.0,第6卷,B部分,第1.3节设备地址 这取决于你的设备。BLE有三种MAC类型:real、public random和private random(它们在文档中可能有其他名称)。真正的(公共)是真正设备的永久MAC。Public random是随机MAC地址,但如果您知道加密密钥,它可以转换为真实MAC。而且私有MAC无法转换为真实MAC。在前两种情况下,您可以识别您的设备,即使每次随机更改。在第三种情况下,无法识别设备。您可以在此处找到更多信息: