当手机处于 sleep 模式时,iOS BLE 在后台扫描广告数据

标签 ios objective-c background bluetooth-lowenergy sleep-mode

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

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

这可能吗?因为在 android 中它是。

最佳答案

当您的应用程序在后台运行时,外围扫描有限制:

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

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

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

关于当手机处于 sleep 模式时,iOS BLE 在后台扫描广告数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511120/

相关文章:

ios - 带有 subview 的 UIViews : calculating position when scaling

ios - 如何将 CoreData 表与在线资源同步?

javascript - jQuery 以纯文本形式获取 div 的绿色背景(获取 "green",而不是 "rgb(0,128,0)",而不是 "#0f0")

javascript - 背景图像不会使用 tailwind 和 nextjs 动态变化

ios - 为什么我的应用程序包没有创建文件夹?

ios - navcontroller - 将导航项设置为图像

ios - 如何更改主视图 Controller 的宽度?

iphone Mail App Popup 样式 alertview

objective-c - 错误 : "Unrecognized selector" when using addObjects: on an NSMutableArray

css - 完美的三部分css背景