从macOS应用程序连接到作为外围设备的后台iOS应用程序
我有一个iOS和macOS应用程序,大量使用核心蓝牙。该应用程序的核心功能包括让中央设备(从macOS应用程序连接到作为外围设备的后台iOS应用程序,ios,swift,macos,core-bluetooth,Ios,Swift,Macos,Core Bluetooth,我有一个iOS和macOS应用程序,大量使用核心蓝牙。该应用程序的核心功能包括让中央设备(CBCentralManager)连接到外围设备(cbperipheraldmanager),检索一些数据,然后断开连接。任何一种设备,无论是macOS还是iOS,都可以作为中央设备或外围设备,具体取决于谁需要数据 起初我认为我的代码有问题,但在使用两台iOS设备测试应用程序后,一台能够连接并从外围设备提取数据,即使外围设备已锁定且应用程序位于后台。现在,根据调查,这是一种预期: …它们只能由显式扫描它们的
CBCentralManager
)连接到外围设备(cbperipheraldmanager
),检索一些数据,然后断开连接。任何一种设备,无论是macOS还是iOS,都可以作为中央设备或外围设备,具体取决于谁需要数据
起初我认为我的代码有问题,但在使用两台iOS设备测试应用程序后,一台能够连接并从外围设备提取数据,即使外围设备已锁定且应用程序位于后台。现在,根据调查,这是一种预期:
…它们只能由显式扫描它们的iOS设备发现
有没有办法让macOS应用程序发现外围设备,即使它们是后台的?我确信我写的代码是正确的,因为它在iOS和macOS上是相同的
更新1
我相信这可能只是不确定如何处理这个问题。在macOS上使用Apple的Bluetooth Explorer,我可以找到所需的设备,并且可以查看和读取自定义服务的数据
此发现通过我的iOS设备中有关读取请求的日志进行验证,这些请求来自我的
外围设备管理器(CBPeripheralManager,didReceiveRead:CBATTRequest)
您能够连接的iOS设备是否具有与Mac相同的iCloud登录?这会(积极地)影响Mac连接到的能力it@Paulw11是的,是的!