gpt4 book ai didi

ios - 在后台使用 iBeacon 或 CoreBluetooth 识别 iOS 设备

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:41 25 4
gpt4 key购买 nike

我有一个运行 2 种模式的应用程序:

  • 方式一:通告 App UUID

  • 模式 2:应用 UUID 的监控和范围

当 2 台设备靠近时,会触发通知。在前台时,我可以使用 Major/Minor 值将唯一的设备 ID(猜测蓝牙 MAC 地址)发送到模式 2 中的设备,并调用网络服务来识别设备属于“谁”。

这个方法后台好像不行?我读到 iOS 设备广播的蓝牙数据包要么在广播时剥离蓝牙 MAC 地址和主要/次要值,要么在后台运行应用程序的设备接收通知选择不接收通知?

我的问题真的是这样的:

即使设备监控在后台使用 CoreBluetooth iBeacon 或 CoreLocation 服务,是否有可能检测到哪个设备正在通告应用程序 UUID?

最佳答案

是的,您可以使用模式 2 中的 CoreLocation iBeacon API 和模式 1 中的 CoreBluetooth API 来宣传具有设备特定主要和次要标识符的 iBeacon。

需要澄清的是,您不能使用蓝牙 Mac 地址,因为 iOS 会在接收端(后台和前台)欺骗这个地址,为每个 session 分配一个唯一的地址,这对于同一传输设备来说并不总是一致的。

使用 iBeacon 传输时,您必须事先知道接收器上的 iBeacon ProximityUUID,因此您可以使用 16 位主要字段和 16 位次要字段来唯一标识设备。这为您提供了超过 10 亿种组合,因此应该足够了。

您可以在后台监控单个 iBeacon UUID,然后 iOS 将唤醒您的应用 5 秒,让您使用 iBeacon 范围 API 读取主要和次要标识符。所有这些都在模式 2 的后台运行,除了作为 iBeacon 传输需要模式 1 的前台。

关于ios - 在后台使用 iBeacon 或 CoreBluetooth 识别 iOS 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com