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与蓝牙服务通信
监听蓝牙服务的变化,变化后给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
当我们接受到数据时,就会触发MyBluetoothGattCallback中的方法,获取到接收的数据。
项目效果
BLE设备列表
数据变化列表
BLE详细信息读写
Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)相关推荐
- Android 开发学习(三)
文章目录 1. ListView 的 使用 2. RecyclerView 的 使用 (推荐) 3. 动画 3.1 逐帧动画 3.2 补间动画 3.2.1 补间动画 之 alpha透明度 3.2.2 ...
- Android多媒体学习三:实现自己的Camera
Android自带的Camera应用虽然可以满足大多数情景,但是其灵活性上还有不足.但是Android允许我们定制自己的Camera. 在Android的hardware包中有一个Camera类.这个 ...
- NORDIC Thing:52 Android App 学习之二:手机 App 蓝牙服务发现及数据读取
1. 选中扫描到的 Thingy 52 蓝牙设备; 文件: ScannerFragment.java public Dialog onCreateDialog(final Bundle savedIn ...
- 一站式学习Wireshark(七):Statistics统计工具功能详解与应用
Wireshark一个强大的功能在于它的统计工具.使用Wireshark的时候,我们有各种类型的工具可供选择,从简单的如显示终端节点和会话到复杂的如Flow和IO图表.本文将介绍基本网络统计工具.包括 ...
- 蓝牙BLE(协议栈、OSAL、蓝牙APP工具)
目录 蓝牙配对和绑定 蓝牙4.0 BLE 信道(RF Channel) BLE协议栈分层 PHY层(Physical layer 物理层) LL层(Link Layer 链路层) HCI层(Host ...
- ESP32 BLE 学习:关于 RSSI 与发射功率
ESP32 BLE 学习:关于 RSSI 与发射功率 文章目录 ESP32 BLE 学习:关于 RSSI 与发射功率 蓝牙发射功率 RSSI(接收的信号强度指示) API 函数设置和获取 发射功率 蓝 ...
- Android BLE学习(一): Android搜索BLE设备
http://my.csdn.net/lidec 背景 总结一下最近ble的学习情况.自从入手ble 51822开发板后就开始不停加班,中途出于好奇,业余时间写了一些单片机上json解析相关的东西,妄 ...
- Android BLE学习(二): Android与51822蓝牙模块通信流程的实现与分析
http://www.itkeyword.com/doc/7802444777000507x499/android-BLE 背景 上一节介绍了蓝牙Android搜索BLE模块方法,搜索到蓝牙模块后,我 ...
- android 蓝牙 广播,android蓝牙BLE(三) —— 广播
在蓝牙开发中,有些情况是不需要连接的,只要外设广播自己的数据即可,例如苹果的ibeacon.自Android 5.0更新蓝牙API后,手机可以作为外设广播数据. 广播包有两种: 广播包(Adver ...
最新文章
- python 文件操作 os.walk() 方法
- Pycharm-列出代码结构
- Github中Tag的使用
- 初学者python笔记(字符串用法解析)
- aix 添加lv 大小
- 2021-11-02为了升级win11去升级BIOS遇到的坑
- PLSQL 1207 64位 配置
- 安装.NET Framework 4失败解决办法
- word退出时,提示”更改会影响共用模板normal.dotm“的处理办法
- SAR图像的相干斑噪声
- 20170223找女朋友之路思考总结
- HL7(Health Level Seven)
- 时区相关-这一篇全了解
- cdh 6哈希验证失败解决方法
- MMO游戏服务器从零开发(架构篇)- 网络部分
- 关于电影票对接公众号cps
- 1分钟教会你二进制撩妹(汉)读心术
- nodej.s 搭建一个socket服务(原生和sockjs)
- 第十二次ScrumMeeting博客
- centos7 离线安装docker和docker-compose
热门文章
- 微信小程序之通过Canvas生成图片保存到手机相册
- buildroot介绍
- java如何转成jar包,修改及反编译可运行Jar包实现过程详解
- 索泰显卡超频软件测试要多少时间,索泰显卡专用超频软件_FireStorm显卡超频 V2.0.1 官方版...
- 沈石溪事件持续发酵 韩国将严查体育界暴力事件
- PostgreSQL DISTINCT用法
- 计算结构体、数组、指针的sizeof
- restful 接口 安全性设计
- 核心技术靠化缘是要不来的——自己动手写ORM框架
- JS获取当前时间date()的用法