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

本文介绍了如何在Android中使用GATT连接并读取BLE设备信息。首先讲解了GATT的基本概念和结构,然后展示了如何通过BLE测试工具获取UUID。接着详细阐述了建立GATT连接的步骤,包括获取BluetoothDevice实例、连接、回调函数的使用,以及如何读取Characteristic的Value值。最后提供了一个完整的代码示例,展示了读取泰凌芯片蓝牙遥控器的VID和PID值的过程。
摘要由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()函数回调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值