我尝试连接2个BLE外设,然后发现他们的服务。
如果我未配对,它可以正常工作,我可以根据需要多次重复此操作。 但是,如果我与他们配对,经过几次尝试连接然后发现它们(大约10,它会有所不同),我就不会收到CoreBluetooth回调:
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?)
这种情况总是以这种方式改变:
我注意到,只要清除配对设备列表,它就会再次正常工作。
我觉得这可能与某些服务的缓存有关,但我无法找到有关该服务的更多信息。我应该在开始发现之前检查缓存吗?
我尝试过的事情:
编辑:
当其中一个设备未能被发现时,任何第三方应用也无法发现它。我尝试了LightBlue和BLE Discovery。
编辑2:
此错误未显示在iPhone 5S和6S +上。
答案 0 :(得分:0)
我的不好,设备确实出现了,但名字不同。
我正在使用一个广告名称与GAP名称不同的BLE设备。因此,在第一次连接到设备之前,我可以在扫描结果中看到他的广告名称,但是一旦我连接到它,就是他的GAP名称出现在扫描结果中(我相信它是由iOS缓存的)
我无法快速解决这个问题,因为我在很多BLE设备的环境中工作。