Android 平台蓝牙低功耗_1.基础知识

        Android 为发挥核心作用的蓝牙低功耗 (BLE) 提供内置平台支持,并提供一些 API,应用可使用这些 API 发现设备、查询服务和传输信息。

        常见用例包括:

  • 在临近设备间传输少量数据。
  • 与近程传感器交互,根据用户当前的位置为用户提供个性化体验。

        与传统蓝牙相比,BLE 旨在大幅降低功耗。这样一来,应用就可以与功率要求更严格的 BLE 设备(如近程传感器、心率监测器和健身设备)进行通信。

基础知识

        为了让支持 BLE 的设备在彼此之间传输数据,它们必须先形成通信通道。如需使用蓝牙 LE API,您需要在清单文件中声明多项权限。一旦您的应用获得使用蓝牙的权限,应用就需要访问 BluetoothAdapter 并确定设备是否支持蓝牙。如果蓝牙可用,设备将扫描附近的 BLE 设备。发现设备后,系统会连接到 BLE 设备上的 GATT 服务器来发现 BLE 设备的功能。建立连接后,可以根据可用的服务和特征通过已连接的设备传输数据

关键术语和概念

下面总结了关键的 BLE 术语和概念:

  • 通用属性配置文件 (GATT)

    GATT 配置文件是关于通过 BLE 链路发送和接收一小段数据(称为“属性”)的一般规范。当前的所有 BLE 应用配置文件都基于 GATT。

  • 配置文件

    Bluetooth SIG 为 BLE 设备定义了许多配置文件。配置文件是规定设备如何在特定应用中工作的规范。请注意,一个设备可以实现多个配置文件。例如,设备可能包含心率监测器和电池电量检测器。

  • 属性协议 (ATT)

    GATT 是基于属性协议 (ATT) 构建的。这也称为 GATT/ATT。ATT 经过优化,可在 BLE 设备上运行。为此,它会尽可能减少使用的字节数量。每个属性均由通用唯一标识符 (UUID) 进行唯一标识。UUID 是一种标准化的 128 位格式,用于对信息进行唯一标识的字符串 ID。由 ATT 传输的特性会采用“特征”和服务的格式。

  • 特征

    特征包含单个值和 0-n 个描述特征值的描述符。特征可以视为一种类型,类似于类。

  • 描述符

    描述符是描述特征值的属性。例如,描述符可以指定人类可读的说明、特征值的可接受范围或特定于特征值的计量单位。

  • 服务

    服务是一系列特征的集合。例如,您可以使用一项名为“心率监测器”的服务,其中包含“心率测量”等特征。

角色和职责

当设备与 BLE 设备交互时,需承担以下角色和责任:

  • 中央设备与外围设备。这适用于 BLE 连接本身。处于中心角色的设备会进行扫描并查找通告,处于外围设备角色的设备会发出通告。

  • GATT 服务器与 GATT 客户端。这决定了两台设备建立连接后如何相互通信。为了理解这种区别,请假设您有一部 Android 手机和一个属于 BLE 设备的 activity 跟踪器。手机支持中心角色;activity 跟踪器支持外围设备角色。要建立 BLE 连接,您需要各连接一个。仅支持外围设备的两个设备无法相互通信,仅支持中央设备的两个设备无法相互通信。

手机与 activity 跟踪器建立连接后,它们便开始将 GATT 元数据相互传输。根据它们传输的数据类型,其中一个可能会充当服务器。例如,如果活动跟踪器想要向手机报告传感器数据,则活动跟踪器可以充当服务器。如果 activity 跟踪器想要从手机接收更新,那么手机可以充当服务器。

相关推荐

  1. (BLE)服务的组成

    2024-07-16 00:24:01       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 00:24:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 00:24:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 00:24:01       57 阅读
  4. Python语言-面向对象

    2024-07-16 00:24:01       68 阅读

热门阅读

  1. dagger2实现原理

    2024-07-16 00:24:01       22 阅读
  2. html视差滚动效果

    2024-07-16 00:24:01       17 阅读
  3. Mac 安装npm

    2024-07-16 00:24:01       17 阅读
  4. Hoppscotch: 强大的API请求工具

    2024-07-16 00:24:01       17 阅读
  5. C++命名规范

    2024-07-16 00:24:01       21 阅读
  6. C语言——数组、sizeof关键字

    2024-07-16 00:24:01       21 阅读
  7. 模板引擎是什么?

    2024-07-16 00:24:01       23 阅读
  8. vue3 学习笔记07 -- 定义响应式数据

    2024-07-16 00:24:01       22 阅读
  9. 第4章 引擎提供的着色器工具函数和数据结构

    2024-07-16 00:24:01       16 阅读
  10. 对删库跑路Say No

    2024-07-16 00:24:01       16 阅读
  11. 完全背包

    2024-07-16 00:24:01       16 阅读