看官们,我们在上一章回中介绍了BLE开发中注册特征值通知的例子,本章回中我们将继续介绍该例子,闲话休提,言归正转。让我们一起Talk Android吧!
本章回中我们重点介绍下如何使用setCharacteristicNotification()
方法注册特征值通知。该方法有两个参数:
- 第一个是参数是特征值(BluetoothGattCharacteristic类的对象),用来确认监听哪个特征值的通知;
- 第二个参数是布尔类型变量,用来确是否监听通知;
我们在上一章回中提到过:一个服务器上包含多个服务,一个服务中包含多个特征值。因此需要使用服务和特征值各自的UUID,这样才能获取到与所提供的UUID匹配的服务及其特征值。获取到特征值后就可以给setCharacteristicNotification()当作参数使用。原理说清楚了,下面是具体的操作:
- 首先是在获取到的服务中找到与UUID匹配的服务;
//mGattServices中存放着我们从GATT服务器上获取到的所有服务,
//遍历所有服务找到与UUID(代码中的serviceUUID)匹配的服务:mService
for (BluetoothGattService service: mGattServices) {
if (service.getUuid().toString().equalsIgnoreCase(serviceUUID)) {
mService = service;
}
}
- 其次通过该服务的getCharacteristics()方法获取该方法中所有的特征值;
- 最后在这些特征值中找到与提供的UUID相匹配的特征值;
//把这两个步骤的涉及到的代码合到了一起,mService就是上一步骤中获取到的服务;
//获取服务中所有的特征值,然后遍历所有的特征值并且找到与UUID
//(代码中的characteristicUUID)匹配的特征值:mCharacteristic
for (BluetoothGattCharacteristic characteristic: mService.getCharacteristics()) {
if (characteristic.getUuid().toString().equalsIgnoreCase(characteristicUUID)) {
mCharacteristic = characteristic;
}
}
各位看官,关于Android中BLE开发注册特征值的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!