查看: 1938|回复: 0

[技术交流] 蓝牙欢乐爬坑行之三---关于安卓系统ble 连接找服务慢的问题

[复制链接]

108

主题

163

帖子

618

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
618
发表于 2018-12-14 16:46:51 | 显示全部楼层 |阅读模式
首次连接需要在连接完成后去调用找服务,参考代码如下:


里面的condition根据客户需求来设计是否每次连接都要找服务。
然后需要把相应的读写或者通知的实例对象存起来,参考代码如下:


然后再次连接完成之后可以不用再找服务,直接利用这些实例来调用相应的操作,参考代码如下:


这样再次连接时候就不用等待找服务完成的事件,用户连接上从机就直接可以对从机进行操作。另外,需要注意一点,该方法只适合同一个mac的设备,如果需要连接另外一个设备,第一次连接还需要进行一次找服务操作。
原因是这样的,以write为例,app调用框架的writeCharacteristic的方法,


根据第一次连接的设备的实例获取到当时的服务,然后根据服务获取当时的设备地址,而我们第二次连接希望调用的是新的mac设备,所以再继续调用下去会出错。


以上分析可供参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表