【发布时间】:2013-10-01 07:29:17
【问题描述】:
在 iOS 6 上,没问题,我可以重新连接配对的蓝牙设备
我用
- (void)retrievePeripherals:(NSArray *)peripheralUUIDs
和代表
- (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals
返回一个外围设备数组。我遍历这个数组并成功连接每个外围设备。
在 iOS 7 上,
- (void)retrievePeripherals:(NSArray *)peripheralUUIDs
已弃用。
好的,我为 iOS 7 使用了一种新方法:
- (NSArray *)retrievePeripheralsWithIdentifiers:(NSArray *)identifiers
此方法返回一个外围设备数组。我遍历该数组并尝试连接每个外围设备,但它不起作用。
ios 7 方法返回的外设日志:
"<CBPeripheral: 0x176e5f50 identifier = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, Name = \"Name\", state = disconnected>"
如果我再次调用retrievePeripheralsWithIdentifiers,外围设备的状态变为:
"<CBPeripheral: 0x176e5f50 identifier = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, Name = \"Name\", state = connecting>"
但什么也没发生
我尝试使用适用于 iOS 6 的已弃用方法,但它是相同的。没有连接。
【问题讨论】:
-
一个人在 Apple Dev Forums 中报告了类似的问题。删除配对后,他的情况得到了解决。你可以试试这个吗?
-
@allprog。如果我删除配对(在 ios 设置-> 蓝牙中)并重新启动应用程序,则当我尝试连接外围设备时不会显示配对弹出窗口。如果我重新启动 iDevices,没关系,会显示配对警报。
-
这可能是 Core Bluetooth 的故障。问题是重置后是否可以连接到外围设备。
-
@allprog。重置 iDevice 后,我可以配对和连接我的外围设备一次。如果我重新启动应用程序,没有连接。
-
如果您也重置设备会怎样?正如@tdevoy 指出的那样,您的外围设备的固件而不是应用程序的代码可能存在一些问题。
标签: ios7 core-bluetooth bluetooth-lowenergy