BLE的自动连接

已BLE HID为例,Android原生代码bta_hh_le_add_dev_bg_conn按照Spec描述,在加载配对记录后,对已配的BLE HID Device设备执行了Auto connection流程,代码内,会触发中心设备向BLE HID Device设备自动发起连接的情况包括如下三种:

  1. 配对成功之后;
  2. 车机蓝牙(中心设备)启动,加载配对记录之后;
  3. 原因是connection timeout的断开之后;

中心设备启动“自动向已配对设备发起连接”的流程后,此时,当BLE 设备开始发送advertising,双方就会正式建立连接。

【自动连接建立流程】:

【为何BLE原生代码默认实现了自动连接】

这主要是基于BLE设备的应用场景,BLE的工作通常是C/S模式,Server和Client。

BLE Server通常是比较小的“外设”,如手环、遥控器等,发送advertising等待连接,有省电要求;

BLE Client通常是“中心设备”,连接的发起方,读取BLE Server的属性;

 

BLE设备的主要特点就是LE(Low Energy),因此,BLE Server完全可以设计成“当BLE Server设备需要发送数据时,双方再建立连接,其他时刻,BLE Server可以停止工作”。

这需要BLE Client设备保持监听,监听advertising,如果检测到发送advertising的设备是可连接的(已配对或在白名单内),自动发起连接。

 

因此,原生代码默认实现了自动连接的必要流程:

  1. 配对成功之后,中心设备发起自动连接,只要当BLE Server想发送数据时,发送advertising双方就可以正式进行Link建立;
  2. 重启中心设备,加载配对记录之后,中心设备发起自动连接,依然是当BLE Server想发送数据时,发送advertising双方就可以正式进行Link建立;
  3. connection timeout的断开之后,中心设备发起自动连接,依然是当BLE Server想发送数据时,发送advertising双方就可以正式进行Link建立;

【发生场景】BLE Server设备为了省电,当一段时间内没有数据要发送时,可以不再发送advertising,双方就会因为connection timeout断开,这是需要中心设备启动监听,这样,当BLE Server设备需要发送数据时,就可以再次连接。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值