* Android BLE基础操作框架,基于回调,操作简单。包含扫描、多连接、广播包解析、服务读写及通知等功能。*
项目依赖:
compile 'com.vise.xiaoyaoyou: baseble:2.0.4'
功能
支持多设备连接管理;
支持广播包解析;
支持自定义扫描过滤条件;
支持根据设备名称正则表达式过滤扫描设备;
支持根据设备信号最小值过滤扫描设备;
支持根据设备名称或 MAC 地址列表过滤扫描设备;
支持根据设备 UUID 过滤扫描设备;
支持根据指定设备名称或 MAC 地址搜索指定设备;
支持连接设备失败重试;
支持操作设备数据失败重试;
支持绑定数据收发通道,同一种能力可绑定多个通道;
支持注册和取消通知监听;
支持配置最大连接数,超过最大连接数时会依据 Lru 算法自动断开最近最久未使用设备;
支持配置扫描、连接和操作数据超时时间;
支持配置连接和操作数据重试次数以及重试间隔时间。
简介
打造该库的目的是为了简化蓝牙设备接入的流程。该库是 BLE 操作的基础框架,只处理 BLE 设备通信逻辑,不包含具体的数据处理,如数据的分包与组包等。该库提供了多设备连接管理,可配置最大连接数量,并在超过最大连接数时会依据 Lru 算法自动断开最近最久未使用设备。该库还定制了常用的扫描设备过滤规则,也支持自定义过滤规则。该库所有操作都采用回调机制告知上层调用的结果,操作简单,接入方便。
演示效果
文件目录结构
使用介绍
权限配置
蓝牙操作针对 6.0 以下系统需要配置如下权限:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
而 6.0 以上系统还需要增加模糊定位权限:
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>
为了简便操作,库中对蓝牙操作需要的权限都做了相关设置不需要重复设置,但 6.0 以上系统需要动态申请模糊定位权限。
引入 SDK
在工程 module 的 build.gradle 文件中的 dependencies 中添加如下依赖:
compile 'com.vise.xiaoyaoyou:baseble:2.0.4'
构建完后就可以直接使用该库的功能了。
初始化
在使用该库前需要进行初始化,初始化代码如下所示:
//蓝牙相关配置修改
ViseBle.config()
.setScanTimeout(-1)//扫描超时时间,这里设置为永久扫描
.setConnectTimeout(10 * 1000)//连接超时时间
.setOperateTimeout(5 * 1000)//设置数据操作超时时间
.setConnectRetryCount(3)//设置连接失败重试次数
.setConnectRetryInterval(1000)//设置连接失败重试间隔时间
.setOperateRetryCount(3)//设置数据操作失败重试次数
.setOperateRetryInterval(