gpt4 book ai didi

java - 中继的蓝牙连接问题 - RxAndroidBle

转载 作者:行者123 更新时间:2023-12-02 05:24:48 24 4
gpt4 key购买 nike

我说英语有点抱歉。我需要你的帮助,因为我投入了很多时间,但我无法完成最后一个细节:_(

我必须将带有蓝牙 LE 的手机连接到继电器,才能打开或关闭门。提供原生蓝牙和 socket ,但没有办法做任何有效的事情。经过大量研究后,我找到了 RxAndroidBle 库并得到了第一个结果。

问题是我不习惯使用响应式(Reactive)编程,而且我真的不知道我在做什么。我传递了代码和接下来的步骤,看看是否有什么东西逃过了我的眼睛。

步骤:

  1. 通过已知 MAC 地址直接连接到设备
  2. 发送打开十六进制命令
  3. 成功的话,执行带有DELAY的关闭命令
    private void SendCommandRele(String enable, String disable, int time) {

bleDevice = rxBleClient.getBleDevice("BB:A0:56:06:0A:0A");
byte[] data = hexStringToByteArray (enable);
UUID uuid = UUID.fromString("0000ffe1-0000-1000-8000-00805f9b34fb");

connectionDisposable = bleDevice.establishConnection(false)
.observeOn(AndroidSchedulers.mainThread())
.flatMapSingle(rxBleConnection -> rxBleConnection.writeCharacteristic(uuid, data))
.doOnError(error -> errorConnection())
.doOnComplete(new Action() {
@Override
public void run() throws Exception {
CloseDevice(disable);
}
})
//.repeat(3)
.retryWhen(io.reactivex.Observable::cache)
.doAfterNext(next -> CloseDevice(disable))
//.take(1)
.subscribe(
well -> {
Handler handler = new Handler();
handler.postDelayed(
new Runnable() {
@Override
public void run() {
CloseDevice(disable);
}
},
time
);
},
failed -> Log.e("E","Error: ")
);

progressDialog.dismiss();
//connectionDisposable.dispose();
}

--

private void CloseDevice(String disable) {
bleDevice = rxBleClient.getBleDevice("BB:A0:56:06:0A:0A");
byte[] data = hexStringToByteArray (disable);

connectionDisposable = bleDevice.establishConnection(false)
.observeOn(AndroidSchedulers.mainThread())
.flatMapSingle(rxBleConnection ->
rxBleConnection.writeCharacteristic(UUID.fromString("0000ffe1-0000-1000-8000-00805f9b34fb"), data)
)
.doOnError(error -> {errorConnection();})
//.repeat(3)
//.retry(3)
.take(1)
.subscribe(
);

progressDialog.dismiss();
}

实际结果:

总的来说,我得到的结果是非常积极的,因为有时它有效,但有时却无效。一个拉斯,连续工作10次,另一个根本不起作用。当然我需要稳定的连接。

预期结果:

正确的工作

最佳答案

我发现这个错误:- 任务 COMMON_BROADCAST_MESSAGE_RECIVED 失败或超时。客户端断开连接。- bta_gattc_mark_bg_conn 无法找到 bg 连接掩码:XX:XX:XX:XX:XX

关于java - 中继的蓝牙连接问题 - RxAndroidBle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56240668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com