最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据。
查询了很多资料终于实现,现进行总结。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
从零开始实现一个连接多个蓝牙4.0 设备并获取数据的 Demo
注:如果不想看实现过程的,直接看最下面的demo源码即可,或每一步后相关操作步骤的完整代码。
一、Demo需求
1、搜索设备 , 选择多个要连接的设备。
2、开始连接,显示数据。
二、项目知识储备
项目中需要用到的三方:
1、RecyclerView
列表,用于显示扫描得到的所有蓝牙设备
2、BaseRecyclerViewAdapterHelper
Recyclerview 帮助框架,快速实现列表操作
3、eventbus
用于消息传递,获取到蓝牙传送的数据之后,刷新界面显示数据时使用
4、bluetooth-manager
蓝牙4.0框架
5、permissionsdispatcher
权限管理,适配6.0+设备
添加依赖 gradle.bulld文件
三、项目实现,布局文件
1、demo中一共用到两个activity 对应两个布局文件
先看扫描设备界面
包含:
1、一个列表,显示 所有扫描到的设备的MAC地址,点击状态在 ''已选择' or '‘未选择’ 之间改变,表明当前设备有没有加入到需要连接的设备集合中
2、扫描按钮
3、结束扫描按钮
4、完成选择按钮,将选择的设备MAC地址传回

连接界面。
包含:
1、选择需要连接的传感器设备 按钮
2、开始连接 按钮
3、数据展示
布局文件代码:
四、Activity实现
1、扫描 设备 选择设备Activity
(1)、变量声明
关键代码:
(1)、蓝牙扫描的初始化设置
蓝牙扫描设置初始化
(2)、开始扫描按钮 操作
(3)、停止扫描按钮 操作
(4)、RecyclerView初始化 ,点击事件操作
activity全部代码:
SelectDeviceActivity.class
适配器相关代码:
ScanDeviceAdapter.class
适配器布局代码:
item_device.xml
2、连接多设备,获取数据并展示Activity
(1)、变量声明
2、关键代码
1、权限适配
注意:不止蓝牙权限,位置权限也需要打开
权限适配
2、蓝牙开启、连接等 初始化设置
initBle
3、开始连接操作
connectBle
activity全部代码:
XBleActivity.class
----------------------------------------------------------------------------------------------------------------------------------------------------------
项目地址:
https://github.com/BestCoderXQX/MagkareBle4.0
项目使用说明:
1、点击按钮:'选择需要连接的传感器设备'、跳转新界面
2、点击'开始扫描'按钮,会出现很多设备的mac地址 ,以列表的新式展现
3、对列表item操作,更改状态'已选择'or'未选择'
4、点击按钮'完成选择设备'按钮,将列表中状态为'已选择'的mac集合传回上个界面
5、点击'开始连接'按钮。连接开始,显示连接设备的数据。(注意,这里是按我的传感器来的。实际需要换成你所用到的设备的 数据 转换公式!)
框架使用说明:
View Code
如有问题,欢迎右侧加群。
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。