我正在开发一款从蓝牙温度计中获取温度的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代码中替换的服务uuids和特征uuids。
我只能读一次温度数据。如果温度发生变化,我无法看到温度值会自动在应用程序中刷新。我必须点击温度列表按钮才能获得最近的值。任何人都可以提出我遗漏或做错的事。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
您突出显示的特征包括读取和指示属性。
读取特征(在Android中调用BluetoothGatt.readCharacteristic)仅按定义获取该时刻的值。
您必须启用指示才能获得值的每次更新。 您可以在this SO thread上找到如何启用通知(而非指示)的方法。您可以替换常量值来启用指示。