【发布时间】:2016-07-24 08:29:14
【问题描述】:
我正在尝试读/写这些 ble 特征:
现在,我正在尝试阅读 AA01*
我正在使用this library 来做这件事。
这是我的代码:
private void connectToSensorTag(RxBleDevice rxBleDevice) {
rxBleDevice.establishConnection(getApplicationContext(), false)
.doOnError(new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
int i = 0;
}
})
.flatMap(rxBleConnection -> rxBleConnection.readCharacteristic(UUID.fromString("AA01*")))
.subscribe(new Subscriber<byte[]>() {
@Override
public void onCompleted() {
int i = 0;
}
@Override
public void onError(Throwable e) {
int i = 0;
}
@Override
public void onNext(byte[] bytes) {
int i = 0;
}
});
我收到此错误:
java.lang.IllegalArgumentException:无效的 UUID:AA01*
我也尝试了this similar question 的解决方案,但没有任何效果。同样的错误。
【问题讨论】:
-
这不是 UUID。 UUID 看起来像这样:123e4567-e89b-12d3-a456-426655440000。见en.wikipedia.org/wiki/Universally_unique_identifier。
-
UUID 应该是一个 128 位的值,它必须像我们在低功耗蓝牙文档中得到的那样。 AA01 应该是长 UUID 的开始(所有其他字符可能相同)。 UUID 通常看起来像 123e4567-e89b-12d3-a456-426655440000
-
您可能根本不需要使用 UUID,而只需从数据包中读取几个字节(两个用于对象字段,两个用于环境)。
标签: java android bluetooth-lowenergy android-ble rxandroidble