我正在开发一个从蓝牙温度计获取温度的android应用程序。我按照谷歌开发者页面上的说明进行了操作。
https://developer.android.com/guide/topics/connectivity/bluetooth-le.html
我可以扫描设备并连接到温度计。我完全使用了下面的github中的相同代码。
https://github.com/googlesamples/android-BluetoothLeGatt/
而不是使用心率服务和相关联的特征。我使用的是温度服务和特性。我已经在从github下载的以下页面中更改了这些值
android-BluetoothLeGatt/Application/src/main/java/com/example/android/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和特征uuid。
我可以读取温度数据,但只能读取一次。如果温度发生变化,我看不到app中的温度值会自动刷新。我必须按下温度列表按钮才能获得最近的值。有人能建议我遗漏了什么或做错了什么吗?
如果您需要更多信息,请让我知道。
发布于 2018-02-28 11:20:07
您突出显示的特征既具有读取属性,也具有指示属性。
读取特征(在Android中调用BluetoothGatt.readCharacteristic )根据定义只能获取该时刻的值。
您必须启用指示才能获取该值的每次更新。您可以了解如何在this SO thread上启用通知(而不是指示)。您可以替换为常量值来启用指示。
https://stackoverflow.com/questions/49020168
复制相似问题