低功耗蓝牙的基本概念:
在BLE协议中,有两个角色,周边(Periphery)和中央(Central)。周边是数据的提供者,中央是数据的使用和处理者。在Android SDK里面,Android4.3以后手机可以作为中央使用;Android5.0以后手机才可以作为周边使用,即此时的手机可以作为BLE设备(如可穿戴设备、手环、智能锁、心率测量仪等)来为中央提供数据。
一个中央可以同时连接多个周边,但一个周边某一时刻只能连接一个中央。
Android BLE SDK的四个关键类如下:
1、BluetoothGattServer作为周边来提供数据,BluetoothGattServerCallback返回周边的状态,更通俗的说,当中央有请求时,系统调用该抽象类的相应方法传递数据给周边。
2、BluetoothGatt作为中央来使用和处理数据,BluetoohGattCallback返回中央的状态和周边提供数据,即周边反馈的数据通过该抽象类的相应方法传递到中央。
该篇文章主要总结手机作为周边的实现
一、创建一个周边所需的类,如下图
说明:每个周边BluetoothGattServer包含多个服务,每个服务包含多个特征,每个特征又可以包含多个描述
1、new一个描述:descriptor=new BluetoothGattDescriptor(UUID_DESCRIPTOR,
BluetoothGattCharacteristic.PERMISSION_WRITE);
2、new 一个特征:characteristicRead=new BluetoothGattCharacteristic(
UUID_CHARREAD,
BluetoothGattCharacteristic.PROPERTY_READ,
3、把描述添加到特征:characteristicRead.addDescriptor(descriptor);
4、new 一个服务: service=new BluetoothGattService(UUID_SERVER,
BluetoothGattService.SERVICE_TYPE_PRIMARY);
5、把特征添加到服务:service.addCharacteristic(characteristicWrite);
6、获取BluetoothManager:mBluetoothManager=(BluetoothManager)
getSystemService(Context.BLUETOOTH_SERVICE);
7、获取周边:mBluetoothGattServer=mBluetoothManager.openGattServer(
context,bluetoothGattServerCallback);
8、把服务添加到周边: mBluetoothGattServer.addService(service
Android BLE 蓝牙学习总结(一):手机作为周边BluetoothGattServer的实现
最新推荐文章于 2025-03-06 19:37:26 发布