Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有任何方法可以唯一标识可扩展设备?_Java_Bluetooth Lowenergy_Rxandroidble - Fatal编程技术网

Java 是否有任何方法可以唯一标识可扩展设备?

Java 是否有任何方法可以唯一标识可扩展设备?,java,bluetooth-lowenergy,rxandroidble,Java,Bluetooth Lowenergy,Rxandroidble,我想在本地存储有关BLE设备的信息,但我不能依赖MAC地址,因为它变化太频繁。有什么方法可以做到这一点吗?蓝牙地址是区分设备的最佳方式。这在蓝牙规范中提到如下[1]: 使用设备地址标识设备。设备地址可能是 公共设备地址或随机设备地址。公众 设备地址和随机设备地址的长度均为48位 正如Mike提到的,有几种类型的MAC地址,正在更改的不是您想要查看的那个。蓝牙规范确定了以下地址:- 公共地址:这是根据IEEE 802-2014标准创建的唯一地址。对你来说,这是与你的答案相关的地址 随机静态地址:

我想在本地存储有关BLE设备的信息,但我不能依赖MAC地址,因为它变化太频繁。有什么方法可以做到这一点吗?

蓝牙地址是区分设备的最佳方式。这在蓝牙规范中提到如下[1]:

使用设备地址标识设备。设备地址可能是 公共设备地址或随机设备地址。公众 设备地址和随机设备地址的长度均为48位

正如Mike提到的,有几种类型的MAC地址,正在更改的不是您想要查看的那个。蓝牙规范确定了以下地址:-

  • 公共地址:这是根据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。在前两种情况下,您可以识别您的设备,即使每次随机更改。在第三种情况下,无法识别设备。您可以在此处找到更多信息: