iOS Corebluetooth - 在我进行网络重置之前,有时无法连接到设备

时间:2013-06-13 15:23:31

标签: ios ios6 core-bluetooth bluetooth-lowenergy

我偶尔遇到一个问题,我的应用程序不会重新连接特定的蓝牙LE设备,直到我重置手机上的网络设置(我猜这清除了蓝牙缓存)。它仍然可以在这种状态下连接到其他设备。

我能够在没有任何问题的情况下连接并发送数据一段时间,然后我点击这个,似乎没有什么可以解决它,除了重置。

我想知道是否有人在使用Corebluetooth / CBCentralManager时遇到类似问题并找到了解决方法?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您的设备仅查找GATT配置文件中指定的特定服务/特性,则可能是问题所在。无论出于何种原因,Apple在文档中遗漏了蓝牙自动缓存GATT配置文件,直到蓝牙关闭并重新打开为止。因此,如果您要更改LE设备上的GATT,并且您的手机正在寻找GATT中的特定内容,则可能无法找到您的设备。不幸的是,我不相信有办法以编程方式清除缓存,所以你仍然需要手动重置蓝牙。

但是,如果您没有更改GATT配置文件,那么以上整段不适用于您= P我要记住的是蓝牙LE“奴隶”(或者,如Apple称之为外围设备)一次只能有一个连接。因此,您的LE设备可能无意中与其他设备连接,因此您的应用无法找到它。这甚至可能是您手机上的应用程序 - 也许您的应用已连接但未显示,或者(如果您正在测试多个应用)另一个应用已经连接到它。