在 BLE 中随机化 Mac 地址

Randomize Mac Address in BLE

我制作了一个应用程序,可以将 iOS 设备变成信标。现在,当我从 android 设备扫描 BLE 设备时,我在扫描列表中得到了 iOS 设备,但问题是每次我得到随机 Mac 地址。

所以,我的问题是:此默认行为是否意味着获取随机 mac 地址? 我已经检查了所有关于堆栈溢出的问题并得到了相同的答案,但我仍然想确认它?

此外,如果更改 mac 地址是默认行为,那么我们可以在 mac 地址更改时得到吗?

同样适用于 android,如果我的 android 设备用作信标,如果我扫描它,它仍然会轮换我的 mac 地址?

每当广播 BLE 时,iOS 设备将在未指定的时间段和条件后自动轮换广播数据包的 MAC 地址。

发生这种情况的确切条件和频率是未记录的、专有的,Apple 随时可能更改。没有可靠的方法来预测 iOS 设备何时会轮换正在进行的 BLE 广告的 MAC,尽管随意测试表明它通常一次保持稳定几分钟。

了解 MAC 更改时间的唯一方法是 iOS 公布一个已知的 iBeacon 标识符,附近没有其他设备正在公布并在 Android 上跟踪此标识符或另一个 OS 让您阅读原始广告的 MAC。然后,您可以直接测量 MAC 何时发生变化。

上述技术可行,但在大多数情况下帮助有限,因为它需要紧邻的两个设备和 iOS 的固定广告。