retrieveConnectedPeripheralsWithServices和retrievePeripheralsWithIdentifiers返回一个空数组

时间:2015-12-08 18:21:15

标签: ios macos cocoa bluetooth

我有两个应用程序在OSX上运行一个,在iOS上运行一个。使用CoreBluetooth框架在它们之间建立蓝牙连接,并添加了对iOS应用程序的后台功能的支持。这工作得非常好,即使在后台运行一段时间后,在后台与iOS应用程序的通信仍然有效。

但是,当iOS设备超出范围时,我必须使用retrievePeripheralsWithIdentifiers在设备返回范围时重新连接,因为应用程序在后台,因此我无法扫描它,因为它的UUID不会被通告({ {3}}。我尝试将retrieveConnectedPeripheralsWithServices与前台的iOS应用程序一起使用以确定问题所在,但该函数总是返回一个空数组,虽然连接已经建立。对于前一种情况,我传递了我的自定义服务于as mentioned in Core Bluetooth Background Processing for iOS Apps)

中指定的CBUUID对象
let connectedPeripherals = centralManager!.retrieveConnectedPeripheralsWithServices([CBUUID(string: "109F17E4-EF68-43FC-957D-502BB0EFCF46")])

尝试让外围设备在后台重新连接到OSX应用程序,使用

let peripherals = centralManager!.retrievePeripheralsWithIdentifiers([NSUUID(UUIDString: "109F17E4-EF68-43FC-957D-502BB0EFCF46")!])

根据documentation也产生一个空数组。另外要提一下,我在前台尝试了iOS应用程序这个功能,但也无济于事。

知道这里可能出现什么问题吗?

0 个答案:

没有答案