Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)
2017-06-07 10:49
1296 查看
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提供的数据。此处我们提供了以下几个示例方法
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
[/code]
当我们接受到数据时,就会触发MyBluetoothGattCallback中的方法,获取到接收的数据。
BLE设备列表
数据变化列表
BLE详细信息读写
背景
由于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的rssi public void enableXXXXXNotification() 将某Characteristic设置为Notification1
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
[/code]
当我们接受到数据时,就会触发MyBluetoothGattCallback中的方法,获取到接收的数据。
项目效果
BLE设备列表
数据变化列表
BLE详细信息读写
相关文章推荐
- Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)
- Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)
- android学习——定制自己的日志工具
- Android蓝牙BLE之RSSI读写(2)
- Android BLE 蓝牙学习总结(一):手机作为周边BluetoothGattServer的实现
- 一步一步跟我学习lucene(13)---lucene搜索之自定义排序的实现原理和编写自己的自定义排序工具
- Android BLE 蓝牙学习总结(二):手机作为中央BluetoothGatt的实现
- Android蓝牙BLE之RSSI读写(2)
- android学习总结四:如何编写自己的Android.mk
- Android BLE蓝牙通讯学习
- android ble蓝牙开发总结(附带自己项目中提取整理的demo地址)
- Android BLE蓝牙开发-读写数据 获取UUID
- 我的Java开发学习之旅------>自己编写的Java数组操作工具
- Android蓝牙BLE之RSSI数据的读写(1)
- Android蓝牙BLE之RSSI数据的读写(1)
- android BLE蓝牙RSSI数据的读写
- Android BLE学习(二): Android与51822蓝牙模块通信流程的实现与分析
- Android开发中编写蓝牙相关功能的核心代码讲解
- Android BLE学习(二): Android与51822蓝牙模块通信流程的实现与分析
- Android(java)学习笔记113:Android编写代码调用Vibrator震动功能(Bug:按下按钮button始终没有震动)