目的
为蓝牙提供支持。蓝牙是一种小范围无线通信技术,Bluetooth SIG为其制定了蓝牙规范v1.1。

Android BLE writeCharacteristic 蓝牙断开 堆栈问题 蓝牙堆栈有什么用_应用程序


                             蓝牙堆栈就像其他许多通信技术,蓝牙的模块层次构成了堆栈。其结构如下:


蓝牙堆栈

蓝牙主机控制器模块Bluetooth Host Controller作为蓝牙的底层,是典型的硬件实现,应用程序(或在蓝牙上添加的服务)不能直接控制。

蓝牙主机模块允许应用程序通过蓝牙连接发送/接受数据,或者配置连接参数:

· RFCOMM允许应用程序将蓝牙连接模拟为串口进行操作。这样可以支持传统的协议。

· 逻辑连接控制和适配协议The Logical Link Control And Adaptation Protocol (L2CAP) 允许连接的finer-grained(?)控制。它用来控制多用户的连接,处理报文的分割和组合。这是应用程序的常用选择

· 服务发现协议The Service Discovery Protocol (SDP)用来定位和描述蓝牙设备提供或者可用的服务。应用程序主要在设置和另外的蓝牙设备通信时使用它

· 主机控制接口The Host Controller Interface (HCI)驱动包装了和硬件通信的高层模块

下面提到的API将为应用程序提供对RFCOMM, L2CAP, SDP,和部分的HCI操作支持。


描述

使用下面的API提供了蓝牙的相应功能:

蓝牙套接字

蓝牙套接字通过一个类似TCP/IP套接字的接口封装了对L2CAP和RFCOMM的操作。

蓝牙服务发现数据库

服务发现数据库封装了SDP的一侧:本地服务用它来记录服务的参数,以便让远程服务发现,并判断是否适合使用。

蓝牙服务发现代理

服务发现代理封装了SDP的另外一侧:它用来发现远程设备的服务和相应的服务的参数

蓝牙安全管理器

安全管理器提供了对于接入连接设直所需要的安全配置


结构关系

下面的图表体现了不同蓝牙API间的关系。注意在基本API之上的蓝牙套接字用来供另外的API和其他设备通信

Android BLE writeCharacteristic 蓝牙断开 堆栈问题 蓝牙堆栈有什么用_应用程序_02


               蓝牙API关系