我正在使用 Feasy Beacon 设备和 Flutter 开发一个考勤应用,并通过 flutter_blue_plus 插件扫描 BLE 设备。
在 Android 上,一切正常:
我可以通过 MAC 地址(remoteId)识别 Beacon
UUID 与 Beacon 上配置的值一致
但在 iOS 上,我遇到了一个限制:
remoteId 是一个随机的 128 位 UUID(例如 e006b3a7-ef7b-4980-a668-1f8005f84383)
这个 UUID 在每次安装应用时都会变化,不能作为稳定的标识符
iOS 不暴露 MAC 地址
根据插件文档说明:
/// iOS 使用 128 位 UUID 作为 remoteId
/// Android 使用 48 位 MAC 地址作为 remoteId
我的问题是:
如何在 Android 和 iOS 上正确且可靠地唯一标识一个 Feasy Beacon?
具体包括:
- 应该使用哪种 BLE 数据作为唯一标识符(UUID / Major / Minor / 制造商数据)?
- 在 iOS 上如何使用 flutter_blue_plus 提取该标识符?
- 使用 iBeacon 数据(UUID + Major + Minor)是否是跨平台识别的推荐方法?