首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android BLE,读写特性

Android BLE,读写特性
EN

Stack Overflow用户
提问于 2014-06-03 14:12:20
回答 2查看 48.1K关注 0票数 33

我目前正在开发Android BLE,并且遇到了很多Android BLE堆栈的问题。

我的开发工具是搭载Android 4.3的三星Galaxy J。

我想知道如何从BLE读取特征和写入特征(就像我验证我收到了什么数据,然后使用BLE发送另一个数据)

而且我在理解Android BLE回调是如何工作的时候遇到了严重的问题,我不明白这5个functions...and的说明书不清楚,有谁能用简单的形式解释一下?

代码语言:javascript
复制
onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite

我目前的情况是,我设法读取了onCharacteristicChanged()回调中的数据,然后验证了接收到的数据,并尝试使用

代码语言:javascript
复制
characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)

但是,Android BLE堆栈并没有调用onCharacteristicsWrite(),事实上,Android只是挂在那里。

我试着用谷歌搜索Android BLE,没有太多信息,只有一堆关于BLE堆栈有多不稳定的抱怨......

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-12 15:31:23

Android BLE的每个回调函数都有自己的函数;

onDescriptorRead和onDescriptorWrite

这用于写入/读取BLE设备的配置设置,某些制造商可能需要向BLE设备发送一些数据并通过读取来确认,然后才能连接到BLE设备

onCharacteristicWrite

这用于将数据发送到BLE设备,通常在BLE设备的数据模式下。此回调在您键入以下内容时调用

代码语言:javascript
复制
gatt.writeCharacteristic(characteristics);

onCharacteristicRead

这用于从BLE设备读取数据当您编写此代码时会调用回调

代码语言:javascript
复制
gatt.readCharacteristic(characteristics);

onCharacteristicChanged

当您尝试使用writeCharacteristic(特征)发送数据,而BLE设备使用某个值进行响应时,将调用此回调。

通常,BLE设备有几个特征,为了简单起见,我列举了几个特征

  • WRITE -写入Characteristics
  • READ -读取Characteristics

为了清楚起见,当你发送数据时,你需要使用WRITE characteristics,然后当BLE设备响应时,安卓应用程序将调用READ characteristics

需要注意的一个非常重要的点是,Android BLE堆栈允许您一次只写入一个特征!!

示例:如果您尝试同时调用两次写入特征

代码语言:javascript
复制
gatt.writeCharacteristic(characteristics);
gatt.writeCharacteristic(characteristics);

Android BLE堆栈将不会发出第二次写入特征!

票数 56
EN

Stack Overflow用户

发布于 2017-05-01 22:08:04

在使用setValue:characteristics.setValue(data)之前,您应该使用gatt.setCharacteristicNotification(Char,true) to setNotification

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24008249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档