我偶尔会遇到一个问题,在我重置手机上的网络设置之前,我的应用程序不会重新连接到特定的蓝牙 LE 设备(我猜这会清除蓝牙缓存)。在这种状态下,它仍然能够很好地连接到其他设备。
我能够在一段时间内毫无问题地连接设备并发送数据,然后我点击了这个,除了重置之外似乎没有任何问题可以解决它。
我想知道是否有人在使用 Corebluetooth/CBCentralManager 时遇到过类似的问题并找到任何解决方法?
谢谢!
我偶尔会遇到一个问题,在我重置手机上的网络设置之前,我的应用程序不会重新连接到特定的蓝牙 LE 设备(我猜这会清除蓝牙缓存)。在这种状态下,它仍然能够很好地连接到其他设备。
我能够在一段时间内毫无问题地连接设备并发送数据,然后我点击了这个,除了重置之外似乎没有任何问题可以解决它。
我想知道是否有人在使用 Corebluetooth/CBCentralManager 时遇到过类似的问题并找到任何解决方法?
谢谢!
如果您的设备只是在寻找 GATT 配置文件中指定的特定服务/特征,那可能就是问题所在。无论出于何种原因,Apple 在他们的文档中都没有提到蓝牙会自动缓存 GATT 配置文件,直到蓝牙关闭并重新打开。因此,如果您正在更改 LE 设备上的 GATT,并且您的手机正在寻找 GATT 中的特定内容,它可能无法找到您的设备。不幸的是,我不相信有办法以编程方式清除缓存,所以你仍然需要手动重置蓝牙。
但是,如果您不更改 GATT 配置文件,则上面的整个段落不适用于您 =P 我要记住的是,蓝牙 LE“奴隶”(或者,苹果称之为外围设备)只能有一次一个连接。因此,您的 LE 设备可能会无意中连接到其他设备,因此您的应用无法找到它。这甚至可能是您手机上的一个应用程序——也许您的应用程序已连接但未显示,或者(如果您正在测试多个应用程序)另一个应用程序已经连接到它。