我正在尝试读/写这些 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: Invalid UUID: AA01*
我还尝试了 this similar question 中的解决方案但没有任何效果。同样的错误。
最佳答案
在 BLE 规范中有两种 UUID。
完全合格的 128 位长,通常分配给 BLE 设备的特定供应商以实现非标准功能:
UUID.fromString("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
也是完全限定(但由标准定义)具有相同前缀和后缀的 UUID:
UUID.fromString("F000xxxx-0451-4000-B000-000000000000");
其中xxxx
是填写从 SensorTag 规范中获得的四个字符的位置。为方便起见,标准 UUID 通常使用四个字符标识符来引用。
此外,如果您使用的是 SensorTag 设备,您可以查看今年 MCE^3 session 上展示的库演示应用程序:
谈话:https://www.youtube.com/watch?v=0aKfUGCxUDM
演示应用程序库:https://github.com/dariuszseweryn/2016_MCE_Demo_RxAndroidBLE
希望对你有帮助。
最好的问候。
关于java - 如何正确使用 UUID.fromString 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38550124/