Skip to content

iOS 蓝牙设备标识说明

平台差异

Android 和 iOS 在蓝牙设备标识上存在重要差异:

Android:扫描蓝牙设备时可以获取设备的真实 MAC 地址,该地址是设备的物理地址,在任何 Android 手机上扫描同一设备都会得到相同的 MAC 地址,可以直接使用该地址发起连接。

iOS:出于隐私保护,系统不会向 APP 暴露设备的真实 MAC 地址。APP 获取到的是一个由 iOS 系统生成的 UUID(CBPeripheral.identifier),这个 UUID 是 iOS 设备根据蓝牙设备的真实 MAC 地址转换而来的,但转换结果与当前 iOS 设备绑定。

iOS 标识的局限性

由于 iOS 的转换机制,同一个蓝牙设备在不同 iOS 手机上会得到不同的 UUID:

蓝牙设备iPhone A 看到的标识iPhone B 看到的标识
门锁 XA1B2C3D4-...E5F6G7H8-...

这意味着:

  • 在 iPhone A 上保存的设备标识,无法在 iPhone B 上用于连接同一设备
  • 用户更换 iOS 手机后,之前保存的蓝牙标识将失效
  • iOS 系统更新或重置后,标识也可能发生变化

正确做法

不要将蓝牙 MAC 地址或 iOS 的 CBPeripheral.identifier 作为设备的持久化标识。应使用业务层的设备标识(如绑定后服务端返回的 deviceId)来识别和管理设备。

蓝牙标识仅应用于当前扫描会话中的设备连接,不应跨设备或跨会话持久化使用。

物联网设备通信协议文档