首页 理论教育 深入解析低功耗蓝牙API

深入解析低功耗蓝牙API

时间:2023-06-27 理论教育 版权反馈
【摘要】:实现客户端的低功耗蓝牙规范在Broadcom公司提供的源码中,文件BleClientProfile.java实现客户端的低功耗蓝牙规范。标识低功耗蓝牙规范、服务和特性在Broadcom公司提供的源码中,文件BleGattID.java定义了一个标识低功耗蓝牙规范、服务和特性的类,此类使用16位或128位的UUID来标识一个给定的低功耗蓝牙实体,这个实体包含规范、服务和特性。到此为止,Broadcom公司推出的低功耗蓝牙协议栈BlueDroid的开发文档和API源码分析结束。

深入解析低功耗蓝牙API

在接下来的内容中,将详细讲解主要API的基本功能和具体原理。

(1)本地蓝牙适配器设备

本功能不是由Broadcom公司提供,而是由Android SDK提供,源码位于如下的目录中。

文件BluetoothAdapter.java实现了所有蓝牙交互的入口。通过使用类BluetoothAdapter可以实现如下的功能。

□发现其他的蓝牙设备,查询匹配的设备集。

□使用一个已知蓝牙地址初始化蓝牙设备BluetoothDevice。

□创建一个能够监听其他设备通信的类BluetoothSocket。

文件BluetoothAdapter.java的主要实现代码如下。

(2)请求远程蓝牙设备

本功能也是由Android SDK提供的,源码位于如下的目录中。

文件BluetoothDevice.java代表一个远程蓝牙设备,可以支持BLE低功耗设备、BR/EDR设备或Dual-mode类型的设备。通过使用类BluetoothDevice可以实现如下的功能。

□请求获取远程蓝牙设备的连接。

□查询获取远程蓝牙设备的名称、地址、类和链接状态。

文件BluetoothDevice.java的主要实现代码如下。

(3)实现客户端的低功耗蓝牙规范

在Broadcom公司提供的源码中,文件BleClientProfile.java实现客户端的低功耗蓝牙规范。在应用中要想访问远程设备中的低功耗蓝牙规范,就必须继承类BleClientProfile,并且需要提供要访问的规范的必须参数和服务标识。通过BleClientProfile的派生类可以发起一个远程设备的连接,并且一个BleClientProfile类可能会包含多个BleClientService对象的实例。文件BleClientProfile.java的具体实现代码如下。

(4)创建一个代表客户端角色设备上的低功耗蓝牙服务派生类(www.xing528.com)

在Broadcom公司提供的源码中,文件BleClientService.java定义了一个派生类,此派生类代表了客户端角色设备上的低功耗蓝牙服务。通过这个派生类可以允许应用程序读写低功耗蓝牙服务的特征,并且在特征改变时注册通知。文件BleClientService.java的主要实现代码如下。

(5)定义服务器端的角色的低功耗规范

在Broadcom公司提供的源码中,文件BleServerProfile.java定义了服务器端的角色的低功耗规范,在创建一个新的低功耗规范之前,需要先继承于这个类,并提供标识要访问规范所必须的参数和服务。通常来说,一个BleServerProfile派生的类包含一个或多个BleServerService对象。在BleServerProfile派生的类中,包含低功耗规范中定义服务的BleServerService对象的集合。文件BleServerProfile.java的主要实现代码如下。

(6)创建低功耗服务

在Broadcom公司提供的源码中,文件BleServerService.java创建了一个低功耗服务,这是服务器端角色上的低功耗规范的一部分。在BleServerService的派生类中包含了一个或多个BleCharacteristic对象。在应用程序中,需要重写类BleServerService来实现一个服务。文件BleServerService.java的主要实现代码如下。

(7)描述低功耗蓝牙服务的特性

在Broadcom公司提供的源码中,文件BleCharacteristic.java可以描述低功耗蓝牙服务的特性。在特性中包含了描述符、实际值和元数据,提供了表现格式或便于阅读值的描述。文件BleCharacteristic.java的主要实现代码如下。

(8)低功耗描述符

在Broadcom公司提供的源码中,文件BleDescriptor.java是BleCharacteristic的一部分,定义了一个低功耗描述符。文件BleDescriptor.java的主要实现代码如下。

(9)标识低功耗蓝牙规范、服务和特性

在Broadcom公司提供的源码中,文件BleGattID.java定义了一个标识低功耗蓝牙规范、服务和特性的类,此类使用16位或128位的UUID来标识一个给定的低功耗蓝牙实体,这个实体包含规范、服务和特性。文件BleGattID.java的主要实现代码如下。

(10)为远程蓝牙设备提供额外信息

在Broadcom公司提供的源码中,文件BleAdapter.java为远程蓝牙设备提供了额外的信息能够判断远程设备是否是低功耗设备、BR/EDR传统蓝牙设备或双模设备。文BleAdapter.java的主要实现代码如下。

(11)保存和GATT相关的常量

在Broadcom公司提供的源码中,文件BleConstants.java定义保存了各种和GATT相关的常量,这些常量用于表示各种和实现低功耗功能函数的属性和返回值。文件BleConstants.java的主要实现代码如下。

到此为止,Broadcom公司推出的低功耗蓝牙协议栈BlueDroid的开发文档和API源码分析结束。本书只是分析了主要的模块类,其他的类的实现代码的功能和原理请读者参阅其源码中的注释说明。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈