iOS蓝牙根据设置连接,但我的应用程序没有连接的外围设备
问题描述:
我正在为自定义蓝牙设备制作应用程序。该应用程序正确地与设备连接/通信,但有时会出现一些奇怪的连接/重新连接问题。iOS蓝牙根据设置连接,但我的应用程序没有连接的外围设备
一个这个问题的可重复的情况,当电池耗尽时:
- 应用与BT设备
- BT设备的电池耗尽,从应用程序断开工作以及
- BT设备的电池充电,尝试重新连接到应用程序
- BT设备连接到操作系统(苹果的BT设备表示设备已连接)
- 应用程序发现所有的CBC特性,以及'isNotifying p roperty是假
- 应用执行setNotifyValue为真所需要的特性
- 问题:该功能不会被调用:FUNC周(_周:CBPeripheral,didUpdateValueFor特性:CBCharacteristic,错误:错误)
- 问题:self.manager.retrieveConnectedPeripherals(withServices:[identifier])不会返回连接的外围设备,即使Apple的BT设置表示设备已连接。
这是如何在第8步经理启动:
fileprivate override init() {
super.init()
self.manager = CBCentralManager(delegate: self, queue: nil, options: [CBCentralManagerOptionRestoreIdentifierKey : Constants.cbCentralManagerOptionRestoreIdentifierKey])
}
问题:有谁知道这种情况的原因可能是什么?或者修复是什么?
可能的线索:
,我需要选择忘记设备两次忘记苹果的BT设置的设备(在第一时间遗忘之后,该设备仍然与显示信息按钮连接)
我有背景的Bluetooth
我得到了我的调试以下消息:
[CoreBluetooth] XPC connection invalid
- 我对雨燕3,Xcode中8
答
如果您的BLE装置断开连接,那么你需要调用这个函数
[centralObj connectPeripheral:peripheral options:nil];
在didDisconnectPeripheral在委托方法。 您无需每次拨打电话scanForPeripheralsWithServices。
当连接丢失时,您如何在IOS代码中启动连接?你应该简单地调用'peripheral。connect()'in'didDisconnect' – Paulw11
重新连接时,当调用centralManager didDisconnectPeripheral时,我调用'self.manager.connect(peripheral,options:nil)'(其中self.manager与上述步骤8中的相同) –