Android Ble 中的核心概念

前言

在 Android 4.3 (API Level 18) 版本后,系统支持了低功耗蓝牙。
系统提供了丰富的api去处理相关的蓝牙操作,如:

  1. 发现设备
  2. 查询服务
  3. 读写数据
  4. ...

与传统的蓝牙相比,低功耗蓝牙主要的设计目的是省电!

核心概念

1. Generic Attribute Profile (GATT)

简介

  • 中文的含义:通用的属性配置(可以认为是对蓝牙通信中的属性做出的规格说明)
  • 目前所有的低功耗应用的相关配置都是基于它而来的
  • 这个配置描述了具体的应用程序中蓝牙设备是如何工作的

在代码中的实现:

Android Ble 中的核心概念_第1张图片
  1. BluetoothProfile是个接口。

它在里面定义了很多字段:如连接的状态,不同类型的蓝牙设备,针对设备允许的连接优先级等等。
它也定义了通用的几个操作:如getConnectedDevices();

Android Ble 中的核心概念_第2张图片

  1. BluetoothGattBluetoothHeadset等,对 BluetoothProfile进行具体的实现。

持有了BluetoothProfile字段的配置信息,实现了BluetoothProfile定义的3个操作。此外他们还提供了蓝牙通信的基本操作,如下:

Android Ble 中的核心概念_第3张图片

2. Attribute Protocol (ATT)

简介

  • ATT: 针对属性的协议,把它当成一种数据结构即可,它约定了这个数据结构长成什么样子。
  • 它是 GATT的一个子集:GATT/ATT
  • ATT 是针对BLE设备进一步优化:尽可能的使用很少的字节。
  • 每个属性用 UUID来标识。

在代码中的实现:

ATT 的具体实现是 characteristicsservices

3. ****Characteristic****

简介

  • 它是一个数据结构
  • 它包含了一个数值和0到n个描述符

在代码中的实现:

它是一个类:public class BluetoothGattService

封装的字段:


Android Ble 中的核心概念_第4张图片

提供了很多便捷的方法:


Android Ble 中的核心概念_第5张图片

4. Descriptor

简介

  • 描述符
  • 描述 characteristic 中的值(值的范围,值的单位,或者人能看懂的信息)

在代码中的实现:

它是一个类:public class BluetoothGattDescriptor
封装的字段:

Android Ble 中的核心概念_第6张图片

5. Service

  • service 是characteristic 的集合

在代码中的实现:

它是一个类:public class BluetoothGattService
封装的字段:

Android Ble 中的核心概念_第7张图片

你可能感兴趣的:(Android Ble 中的核心概念)