无法从蓝牙温度计连续获得温度值

时间:2018-02-28 00:32:17

标签: android bluetooth-lowenergy

我正在开发一款从蓝牙温度计中获取温度的Android应用程序。我按照谷歌开发者页面上的说明进行操作。

https://developer.android.com/guide/topics/connectivity/bluetooth-le.html

我可以扫描设备并连接到温度计。我正在使用以下github中的相同代码。

https://github.com/googlesamples/android-BluetoothLeGatt/

而不是使用心率服务和相关特征。我正在使用温度服务和特性。我在从github

下载的下一页上更改了这些值

机器人-BluetoothLeGatt /应用/ SRC /主/ JAVA / COM /示例/机器人/ bluetoothlegatt / SampleGattAttributes.java

我使用以下蓝牙温度计。

http://www.cooper-atkins.com/Products/Blue2/

这是我从COOPER-ATKINS获得的API文件。

https://drive.google.com/open?id=1eq93Qc6uy0Vv9KompukLuIUnJK4B-e-0

在第6页中,我突出显示了我在github代码中替换的服务uuid​​s和特征uuids。

我只能读一次温度数据。如果温度发生变化,我无法看到温度值会自动在应用程序中刷新。我必须点击温度列表按钮才能获得最近的值。任何人都可以提出我遗漏或做错的事。

如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

您突出显示的特征包括读取和指示属性。

读取特征(在Android中调用BluetoothGatt.readCharacteristic)仅按定义获取该时刻的值。

您必须启用指示才能获得值的每次更新。 您可以在this SO thread上找到如何启用通知(而非指示)的方法。您可以替换常量值来启用指示。