我将描述我的设置:
我制作了一个模拟Eddystone信标的android应用程序。 我使用PlayStore的Beacon Toy应用程序检测到手机上的Eddystone信标。但问题是,从我上次检查时看,显示的MAC ID已经改变。 我可以识别它的相同信标,因为命名空间和实例id相同但在不同的MacID下。 有人可以建议这里发生了什么吗?我的印象是MacID保持不变。
答案 0 :(得分:0)
是的,Android发射器随机化他们的蓝牙MAC地址。这不是Eddystone特有的,而是所有类型的Android信标发射器,更准确地说是Android BLE广告。
为了证明这一点,我在Nexus 5X上进行了一些测试。使用Locate Beacon应用程序以iBeacon格式传输信标(相同的结果也适用于Eddystone和其他格式)我可以看到每次停止并开始广告时传输的MAC地址都会发生变化。
我的Nexus 5X在设置中显示其蓝牙MAC地址 - >关于手机 - >状态 - >蓝牙地址。它是64:bc:0c:xx:xx:xx
(注意:我已经消除了MAC的最后三个设备特定字节,只显示了前三个字节,即公司OUI分配给LG电子公司,Nexus 5X的制造商。)< / p>
对于此测试,我在配置了BlueZ的Linux设备上启动蓝牙LE扫描。扫描输出它找到的每个新BLE设备的MAC地址。 BlueZ不会扰乱此MAC地址。
接下来,我在Nexus 5X上反复启动和停止发射器。每次我在扫描结果中显示新的MAC地址。在下面的输出中,我在每次检测后点击返回键几次以显示空白行,以显示我何时关闭和重新打开发射器。
$ sudo hcitool lescan
LE Scan ...
5C:62:56:18:DA:A5 (unknown)
5C:62:56:18:DA:A5 (unknown)
6A:E8:D1:90:CA:26 (unknown)
6A:E8:D1:90:CA:26 (unknown)
70:A8:86:F7:E9:68 (unknown)
70:A8:86:F7:E9:68 (unknown)
66:F6:B4:24:89:44 (unknown)
66:F6:B4:24:89:44 (unknown)
如您所见,每次启动发射器时,都会发出一个新的随机MAC地址,与设置报告的物理MAC地址无关。