gpt4 book ai didi

android - 读取特征和设置通知之间的区别

转载 作者:行者123 更新时间:2023-11-29 15:41:56 27 4
gpt4 key购买 nike

您好,我正在我的 Android 应用程序中开发低功耗蓝牙每当我在应用程序中调用我的 readCharacter() 时,我都能读取特征但我想启用通知,以便在有可用数据时我可以阅读。目前我正在使用下面的方法。

private byte[] readCharacteristic(){
if(!isReadEnabled){
enableTXNotification();
isReadEnabled = true;
}

byte[] arr = new byte[CHUCK_SIZE];
BluetoothGattService RxService = mBluetoothGatt.getService(RX_SERVICE_UUID);
if(RxService == null){
broadcastUpdate(BLUETOOTH_EVENT_SERVICES_NOT_SUPPORTED);
return arr;
}
BluetoothGattCharacteristic TxChar = RxService.getCharacteristic(TX_CHAR_UUID);
if(TxChar == null){
broadcastUpdate(BLUETOOTH_EVENT_SERVICES_NOT_SUPPORTED);
return arr;
}
arr = TxChar.getValue();
Log.d(TAG,Arrays.toString(arr));
return arr;
}

这是我的enableTXNotification():

private void enableTXNotification(){
if (mBluetoothGatt == null) {
broadcastUpdate(BLUETOOTH_EVENT_SERVICES_NOT_SUPPORTED);
return;
}

BluetoothGattService RxService = mBluetoothGatt.getService(RX_SERVICE_UUID);
if (RxService == null) {
broadcastUpdate(BLUETOOTH_EVENT_SERVICES_NOT_SUPPORTED);
return;
}
BluetoothGattCharacteristic TxChar = RxService.getCharacteristic(TX_CHAR_UUID);
if (TxChar == null) {
broadcastUpdate(BLUETOOTH_EVENT_SERVICES_NOT_SUPPORTED);
return;
}
mBluetoothGatt.setCharacteristicNotification(TxChar,true);
BluetoothGattDescriptor descriptor = TxChar.getDescriptor(CCCD);
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
}

所以我的问题是启用通知和阅读特性有什么区别?

如何在数据可用时收到通知

最佳答案

主要区别在于通知是从外设触发的,而读取是从中央发出的。对于想要省电的外围设备,您可以使用“延迟”功能。然后通知可能比读取具有更低的延迟和更高的数据速率。如果外围设备随机创建数据,那就更有意义了。

关于android - 读取特征和设置通知之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888464/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com