Android|Android BLE学习(三)(编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel))
http://my.csdn.net/lidec
背景
由于nordic官方的nrf master control panel只提供了apk,很多同学学习起来都得自己摸索蓝牙的读写,项目中整理了BLE模块的基本读写方法以及一些常用的UUID,并且抽取了一些蓝牙操作的流程,方便Android app代码开发,希望能帮到正在学习BLE蓝牙的同学们。
上一篇文章总结了51822 BLE蓝牙模块的连接以及一些蓝牙协议相关的知识,本文将综合前述内容,参照官方的nrf master control panel,实现Android手机与蓝牙模块的搜索,连接,及相关的读写。
项目地址:https://git.oschina.net/vonchenchen/BLE_Assitant.git
apk下载:http://download.csdn.net/detail/lidec/9468739
流程 activity与蓝牙服务通信
ActivityActivityBLEControlServiceBLEControlService蓝牙功能服务,数据变化发送相应广播BLEStatusChangeReceiver监听,回调OnBLEStatusChangeListener 传递数据给Activity 监听蓝牙服务的变化,变化后给BLEStatusChangeReceiver发送广播
BLEControlServiceBLEControlServiceMyBluetoothGattCallbackMyBluetoothGattCallbackgatt数据变化回调给BLEStatusChangeReceiver发送广播 通过回调函数获取蓝牙变化后的数据,这样就可以灵活将不同类型显示在不同地方。这样比较方便模仿官方master的蓝牙日志功能,同时兼顾在其他控件中显示数据,增强了程序的灵活性。
蓝牙写入与读取写入特征值和描述符数据或者其他数据时,都需要在BLEControlService中提供相应的方法,而其底层实现需要调用mBluetoothGatt中提供的方法。具体功能见mBluetoothGatt提供的数据。此处我们提供了以下几个示例方法
public boolean connect(final String address)蓝牙连接public void disconnect()蓝牙断开public void close()蓝牙关闭public void readCharacteristic(BluetoothGattCharacteristic characteristic)读取readCharacteristic的信息public void writeCharacteristic(BluetoothGattCharacteristic characteristic, byte[] value)写入readCharacteristic的信息public void readDiscriptor(BluetoothGattDescriptor descriptor) 读取描述符信息public void readRemoteRssi()读取ble的rssipublic void enableXXXXXNotification()将某Characteristic设置为Notification
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
项目效果
文章图片
BLE设备列表
文章图片
数据变化列表
文章图片
文章图片
BLE详细信息读写
【Android|Android BLE学习(三)(编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel))】
文章图片
推荐阅读
- android第三方框架(五)ButterKnife
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 带有Hilt的Android上的依赖注入
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)