android 配对ble设备,Android bluetooth创建GATT连接并读取设备信息

一 GATT简介蓝牙分为经典蓝牙和低功耗蓝牙(BLE),我们常用的蓝牙遥控器就是低功耗蓝牙低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT全称Generic Attribute Profile(直译即:通用属性协议),是一个在蓝牙连接之上的发送和接收较短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。二 ...
摘要由CSDN通过智能技术生成

一 GATT简介

蓝牙分为经典蓝牙和低功耗蓝牙(BLE),我们常用的蓝牙遥控器就是低功耗蓝牙

低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。

GATT全称Generic Attribute Profile(直译即:通用属性协议),是一个在蓝牙连接之上的发送和接收较短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。

二 GATT的结构

GATT的结构简单的讲,如下图:

gatt是多个service的集合,gatt包含多个不同的service

service下包含多个不同的Charcteristic(特征)

Charcteristic又包含value和Descriptor

048f58b38450

image.png

每个Service和Charcteristic有一个唯一标识UUID

一般我们读取BLE设备的信息,就是读取Charcteristic下的Value值

所以我们需要知道service和Charcteristic的UUID,就能拿到这个Charcteristic下的值

三 如何知道指定的service和Charcteristic的UUID

一般使用BLE测试工具即可

我这里使用的BLE5.1ScanDemo apk,上传到网盘供大家使用

https://pan.baidu.com/s/1wyMMZbVJOQOq1QS5Am-mPg

提取码:6666

把BLE5.1ScanDemo apk安装到手机

遥控器或其他BLE设备与手机蓝牙配对连接

打开apk界面会显示已配对的蓝牙设备

048f58b38450

image.png

点击击打开设备后,可以看到这个设备GATT下所有的service和对应的UUID

048f58b38450

image.png

打开service后,可以看到service下所有的Charcteristic的和对应的UUID

点击Charcteristic后,在上面可以看到其Value值(如下图,读取到的是设备型号SCCN001)

048f58b38450

image.png

四 如何建立GATT连接及如何读取Charcteristic下的数据

android 4.0以后添加了BLE的支持,在系统BluetoothDevice.java源码中已经提供了Gatt连接的接口函数

那么我们只需要找到指定的蓝牙设备获取它的BluetoothDevice实例,然后调用connectGatt函数即可

048f58b38450

image.png

1、获取指定的蓝牙设备BluetoothDevice实例

048f58b38450

image.png

2、建立GATT连接

使用上一步获取到的设备实例,调用connectGatt函数建立连接

048f58b38450

image.png

3、重写GattCallback回调

在第2步建立GATT连接连接时,需要传入gattcallback实例

所以我们要先实例BluetoothGattCallback类并重写其回调函数,如图

这几个回调函数后续会用到

048f58b38450

image.png

4、GATT连接成功,onConnectionStateChange()函数回调

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值