iOS 当 phone 处于睡眠模式时,BLE 在后台扫描广告数据

iOS BLE Scanning for AdvertisementData in background when the phone is in Sleep Mode

我正在尝试搜索 iPhone 是否可以扫描 BLE 设备并在其处于睡眠模式时读取其广告数据。

例如,只要持续扫描,然后如果设备更改其广告数据,phone 将唤醒并触发本地通知。意思是,该应用程序在后台模式下 运行 x 时间段。

可能吗?因为在 android 中是。

当您的应用在后台 运行 时,周边扫描有限制:

  • 您必须指定您感兴趣的服务UUID;你不能使用 nil
  • 不支持重复扫描选项键。这可能是阻止您实现预期结果的原因

由于重复键在后台被忽略,如果您的应用程序之前发现了一个外围设备,那么在您的应用程序重新启动之前,它的发现不会重新触发 didDiscoverPeripheral 委托方法。

对于长期发现,您还应该选择加入状态恢复,但这对于 Xcode 下的简单测试用例 运行 不需要。