Android 蓝牙 白名单,远程蓝牙设备白名单和非白名单自动回连兼容方法与流程

9d7188ec9cf8794b874e644d98b794f2.gif

本发明涉及一种蓝牙设备回连方法,具体涉及一种远程蓝牙设备白名单和非白名单自动回连兼容方法。

背景技术:

目前android系统中较依赖蓝牙的智能终端当属android智能语音电视,因为蓝牙遥控器可以将语音数据从遥控器端传送到电视端,而红外遥控器和射频遥控器均不能收集语音数据。为提高用户使用体验,需保证蓝牙遥控器等常用的远程蓝牙设备保持连接或者断开之后能够立刻回连,可见选择合适的自动回连方式显得十分重要。而常规的回连分为两种方式,如附图1所示,包括BLE设备白名单回连和蓝牙应用非白名单回连。前者回连时间快,但是不区分远程蓝牙设备断开时所发广播包的内容。后者相对前者回连时间慢,但是区分远程蓝牙设备断开时所发广播包的内容。

不同平台对远程蓝牙设备自动回连要求不一致,为了实现远程蓝牙设备自动回连智能化管理。就需要将两种自动回连方式集成到一个系统中,设置一个能够让应用层即java层和蓝牙协议栈即C++层同时访问和更改的变量。而且需要保证由用应用层下connect命令时,蓝牙协议栈不能下connect命令直到收到应用层调用conenct命令建立连接;但当是BLE白名单回连时,上层应用收到回连包时不需下connect命令,由fw直接建立连接。为了这两种方法能动态切换同时不影响平台对蓝牙设备配对、连接管理,本发明是设计一套能在Android系统切换不同自动回连同时保证只有一个位置下载conenct命令的方法。

技术实现要素:

在Android系统正常模式下,对特定远程蓝牙设备自动回连方式进行优化,优化过程中发现BLE白名单自动回连的回连时间快,但是无法区分特定远程蓝牙设备发送的回连包还是配对包,导致顶替配对出错。BLE白名单自动重连在未检测到linkey的情况下,蓝牙协议栈才会不主动下发空connect命令。而原自动回连方案,android系统端和特定远程蓝牙设备都保存了linkey,如若要进行技术跌代,需保证原用户不受影响。所以需要设计一种兼容方案能够将BLE白名单自动回连和应用层非白名单自动回连的集成到Android系统后,两自动回连方式之间互不影响能自由切换。

本发明即是为了解决上述问题,提供一种远程蓝牙设备白名单和非白名单自动回连兼容方法。

本发明是这样实现的:

Android设备蓝牙模块启动过程为:Linux启动后,加载Android系统的SystemServer,在Systemserver中启动蓝牙系统服务。蓝牙系统服务初始化蓝牙模块,应用层蓝牙设备连接管理app利用蓝牙系统服务连接管理远程蓝牙设备,完成开机后远程蓝牙设备的连接。远程蓝牙设备需要切换自动回连模式就必须要在远程蓝牙回连成功之前。所以需将两种自动回连模式的流程图整理出来,对比分析两者实现原理之间差异的地方。

BLE白名单实现的原理是:远程蓝牙设备连接成功后将蓝牙设备地址保存到BLE白名单中,若检测到BLE白名单中设备断开连接,蓝牙协议栈就下发给蓝牙驱动一个不携带地址的connect命令,待收到远程蓝牙设备的回连包后解析出地址直接进行连接。

而应用层非白名单自动重连的实现原理是:远程蓝牙设备断开后发出回连包,蓝牙协议栈收到回连包后直接上传给应用层,应用层收到回连包后解析出来后,给蓝牙协议栈下发connect命令,蓝牙协议栈收到connect命令之后,在与远程设备建立连接。两种自动回连的方案对比图为图1所示。

通过对比可以发现,两种自动回连的方式最大的区别是下发conenct命令位置,而通过控制conenct下发的命令的位置,就能控制两种自动回连的方案间的自由切换。Android系统中,系统属性可以同时被java层和C、C++层访问和修改,所以可以通过将切换模式的条件设置为系统属性,通过改变改变系统属性值,就可以简单快速的切换远程设备自动回连的方式。具体实现如图2所示。

本发明提供一种远程蓝牙设备白名单和非白名单自动回连兼容方法,包括:

在Android系统中,利用蓝牙协议栈即c层和android应用层即java层都能访问和修改系统的同一属性值的特点,将切换模式的条件设置为系统属性,从而可以通过改变属性值的变化来切换自动重连的状态,来管理远程蓝牙设备的回连状态。

具体为:

首先,对Android系统中系统属性进行修改,将系统属性设置为蓝牙连接的切换模式;

由于Android系统提供了系统属性SystemProperties接口,该接口为全局共享接口。可以调用SystemProperties接口中的set方法设置属性变量的名称和对应的属性变量值,然后通过SystemProperties接口中的get方法来获取属性变量名称和对应的属性值。属性变量名称可以自定义,属性值可以根据整机配置的遥控器型号和配对连接成功后遥控器型号来设置更改。这种具体的设置和更改对于本领域技术人员来说不具有技术难度,均可以直接完成。整机配置的遥控器是提前预置进了系统。

其次,启动蓝牙前,初始化切换自动回连的属性值,切换蓝牙的回连方式,接着对蓝牙模块进行初始化;

蓝牙启动前,可以根据整机配置的遥控器型号设置属性值。蓝牙启动后,蓝牙遥控配对连接成功后,可以通过gatt协议访问蓝牙遥控器设备的型号,然后根据得到型号值更改属性。

最后,回连特定的远程蓝牙。

本发明提供了一种针对Android系统远程蓝牙设备的自动回连方式进行兼容,在同一个环境下可以根据需求自由切换自动回连方法。完善Android设备对蓝牙设备的自动回连模式支持,优化回连体验的同时不影响其他原用户的使用,同时提高了产品竞争力,提高稳定性。

附图说明

图1为远程蓝牙设备ble白名单自动回连的实现原理图和应用层非白名单自动回连的实现原理图。

图2为远程蓝牙设备ble表名单自动回连和应用层非白名单自动回连切换的实验原理图。

具体实施方式

本发明主要是针对Android系统远程蓝牙设备的自动回连方式进行兼容,在同一个环境下可以根据需求自由切换自动回连方法。具体实施方式有:

1、整理ble白名单回连流程

2、整理应用层非白名单回连流程

3、在Android系统中,利用蓝牙协议栈即c层和android应用层即java层都能访问和修改系统的同一属性值。通过改变属性值的变化来切换自动重连的状态,来管理远程蓝牙设备的回连状态。

4、启动蓝牙前,初始化切换自动回连的属性值。接着对蓝牙模块进行初始化。

5、回连特定的远程蓝牙。

尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值