- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 Gatt 与 BLE 设备通信时,我不太明白。根据这个: https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback)
BluetoothGatt gatt = device.connectGatt(context,true,new BluetoothGattCallback(){....})
我可以连接到 BLE 设备并给它一个回调对象,以便在诸如 onCharacteristicRead 和 onCharacteristicWrite 之类的事情上得到通知
我不明白的是,哪个写入对应于哪个读取回调?
这个方法签名是:
public void onCharacteristicRead (BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status)
public void onCharacteristicWrite (BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status)
所以如果我这样做:
BluetoothGattCharacteristic char = gatt.getService(UART_SERVICE_UUID).getCharacteristic(UART_TX_CHARACTERISTIC_UUID);
char1.setValue("command1");
gatt.writeCharacteristic(char);
char1.setValue("command2");
gatt.writeCharacteristic(char);
在 onCharacteristicRead 回调中,我如何知道 characteristic.getStringValue() 是针对 command1 还是 command2?
谢谢!
最佳答案
在使用 BluetoothGatt.writeCharacteristic()
和相关的 BluetoothGatt
方法时,有几件重要的事情需要了解。
请注意 writeCharacteristic()
(以及 BluetoothGatt
的许多其他方法)返回一个 bool 值。当结果为 false 时,表示操作没有成功启动。那是什么时候发生的?请参阅下一项。
使用BluetoothGatt
对象,不可能同时启动两个操作。启动第二个的调用将失败并返回 false。调用 writeCharacteristic()
后,代码必须等待回调响应 (onCharacteristicWrite
) 才能发出另一次写入。由于这个原因,在这个问题的示例代码中,第二次调用 writeCharacteristic()
几乎肯定会返回 false。
通过这种方式,如果每个 BluetoothGatt 操作都等待对先前发出的命令的回调,您就可以成功地将命令启动和回调配对——真的是被迫的。
关于Android Bluetooth Low Energy 获取对特定请求的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025090/
论文信息 论文标题:Energy-based Domain Adaption with Active Learning for Emerging Misinformation De
我正在尝试编写一个简单的物理模拟,其中具有不同半径和质量的球在完美弹性和无摩擦的环境中弹跳。我按照以下资源编写了自己的代码:http://www.vobarian.com/collisions/2dc
我正在使用设备在 ios 应用程序上运行“能源使用”仪器,我想用它来检查由于我正在测试的应用程序而耗尽了多少电池。它显示“能源使用水平”,它在不同的时间点给我 13/20 、 12/20 等数字。 如
我读过几本图像处理书籍和网站,但我仍然不确定图像处理中术语“能量”的真正定义。我找到了几个定义,但有时它们并不匹配。 当我们在图像处理中说“能量”时,我们在暗示什么? 最佳答案 能量是图像局部变化的度
我有一个不寻常的问题。我开发了一个简单的应用程序来使用 BTLE 来发现 iBeacons。我已经创建了应用程序的 2 个变体。第一个包含 MainActivity 中的所有代码,并使用回调运行 BT
我使用 Developer >> Logging for Energy Diagnostics 运行了几次长期电池测试。我已将它们全部发送到我能够确定“能源使用水平”的仪器中。但是,是否也可以获取当时
使用 Gatt 与 BLE 设备通信时,我不太明白。根据这个: https://developer.android.com/reference/android/bluetooth/BluetoothD
我尝试计算我的 pandas.DataFrame 之后的信号能量 formula for discrete-time signal .我试过 apply和 applymap,也有 reduce,如这里
我有一个完整的应用程序,可以连接到我们制作的定制蓝牙外围设备并准备发布。但是,我刚刚发现该应用存在一个我无法确定的问题。 我在 Service 中运行我所有的蓝牙操作,有时当我想要结束蓝牙操作时,我最
Follow-Up question on Electrical Engineering Stackexchange 我想在短时间内重复写入Bluetooth Low Energy 特性的值(作为一个
在低功耗蓝牙中,一个主设备可以连接的最大从设备数量是多少?主设备可以连接的最大从设备数量是多少? Bluetooth Low Energy 有 40 个 channel ,但为什么它们只使用 3 个
This question already has answers here: How to create a python loop that allows other code to run as
我正在制作一个 ios 应用程序,它在 iPhone 中以应用程序的最小化模式和前台(事件)模式扫描 BLE 设备。在前台模式下,它可以正常工作,但如果应用程序进入最小化模式,扫描将无法正常工作。 我
我想知道是否可以在有人进入或离开a beacon Region时在后台进行检查? 例如在 iOS 中,您可以使用方法 didEnterRegion 或 didExitRegion 从后台发送通知。 是
在 WWDC 2015 主题演讲中,提到电池续航时间将延长一小时,并且具有低电量状态,可将电池续航时间延长三小时。 iOS 应用开发者是否需要为此新功能做任何事情?在低电量状态下,他们的应用程序是否必
我面临一个面试问题,我无法解决它并谷歌它但没有用,这里的问题是(哪种算法适合下面给出的问题) 这条线有很多房子,从0开始编号,用户可以访问。 每个房子都有自己的能源供应量和硬币供应量 用户在房子 0
请帮我修改我的代码! 问题很可能出现在 getValues 方法中。 每次我输入 2 个值并单击计算按钮时,都会出现很多错误。 我使用 NetBeans 对其进行了编程,这就是代码看起来不精简的原因。
当我 using (var process = new Process { StartInfo = new ProcessStartInfo { FileName =
我正在尝试求解一个非线性系统,该系统将使用拉格朗日方法和指数公式来最小化吉布斯自由能。方程中已包含指数形式 Y1...Y6 的拉格朗日量,随后将其转换为化学物质 n1...n9 的摩尔数。 问题是 f
我有一个不知道使用的 gatt 配置文件的设备,我只知道这是“自制”的东西,而不是蓝牙数据库中已知的任何东西。 Linux 中的命令 gatttool -i hci0 -b xx:xx:xx:xx:
我是一名优秀的程序员,十分优秀!