1 指定设备连接(扫码链接)
解决方案:由于iOS是无法直接得到蓝牙的mac地址,因此我们需要硬件来告诉我们mac地址来区分蓝牙
图-1这样我们结合扫码的地址就能准确连接
2 蓝牙断开问题
原因: 主设备主动断开的时候,断开代理会立刻执行,但是蓝牙并没有真的断开,而真正的断开时间是断开代理执行后的0-8秒之间
解决方案:1.主设备给从设备发送消息,让从设备主动断开
2.立刻开启蓝牙搜索,当搜索到你要断开的设备时,说明蓝牙已断开(被链接的蓝牙是无法搜索到)
3 蓝牙写入速率问题
对于操控类蓝牙,数据写入要求非常快,其中writeWithSponce写入消耗的时间是writeWithoutSponce的2.3倍,因此尽量改写成writeWithoutSponce来提升写入速率
4 数据写入延迟问题
当数据写入和读取同时进行且速率过快的时候,并且读取超频的时候,写入数据就会出现指数性延迟
5 蓝牙UI刷新问题
原因: 我们再搜索设备的时候,一般都用tableIView来展示搜索到的蓝牙数据,但是由于搜到的蓝牙回调速率特别快,导致你cell插入刷新不过来,从而导致数据刷新异常的现象.
解决方案: 不要每次搜索设备就立马刷新数据,而是在你添加了新的设备后开始开始刷新(蓝牙会被 重复搜索),并且由于搜索频率很快,我们可以开启延迟刷新.比如说我们在搜到新数据后,通过代理回调到vc中,并在主线程中使用performSelector来延迟0.3秒刷新,并且在每次刷新之前,我们先取消之前未执行的UI延迟方法: cancelPreviousPerformRequestsWithTarget
网友评论