iOS 中没有最后一个外围设备时,后台扫描无法工作?

Dev*_*205 6 bluetooth ios core-bluetooth bluetooth-lowenergy swift

我尝试在后台使用 UUID 连接外围设备,仅当我第一次在前台与广告信标交互时它才工作,然后我的应用程序进入后台其工作背景和锁定模式,如果我的应用程序第一次远离广告信标我放置我的应用程序在后台,然后将接近广告信标,它不起作用。在控制台中,它们最后一个未找到外围设备,因为会出现该错误,我的问题是:是否可以在不打开应用程序的情况下首次使用 UUID 扫描或连接蓝牙?

我也已经尝试过该解决方案:

iOS BLE 设备在应用程序处于后台或终止或挂起时配对

iOS:在后台模式下未调用 didDiscoverPeripheral

didDiscoverPeripheral:有时在后台不工作

无法搜索在扫描响应 iOS 中提供服务 ID 的 BLE 设备

源文件:https://drive.google.com/file/d/1uVR_kA3NsQUpM-LLgrGgXCeZK6PBO-A7/view ?usp=sharing

小智 0

发现这个问题有点意思,于是就开始研究CoreBluetooth。

根据核心蓝牙编程指南

尽管您的应用程序位于后台时可以执行许多与蓝牙相关的任务,但请记住,当您的应用程序位于后台时扫描外围设备的操作方式与应用程序位于前台时的操作方式不同。特别是,当您的应用程序在后台扫描设备时: CBCentralManagerScanOptionAllowDuplicatesKey 扫描选项键将被忽略,广告外围设备的多个发现将合并为单个发现事件。如果所有扫描外围设备的应用程序都在后台运行,则中央设备扫描广告数据包的时间间隔会增加。因此,发现广告外围设备可能需要更长的时间。

现在,在您提供的示例中,背景模式已正确提供。iOS 仅在后台 [被动] 模式下查找广告数据包,而不是响应数据包进一步搜索让我找到了此链接

ios-在后台扫描并连接到 BLE 外设

您可以检查一下您是否也有这种情况