问题标签 [rxandroidble]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
161 浏览

rxandroidble - 自动连接=真时出现 RxAndroidBLE BleGattException

一段时间后,在观察使用 autoconnect=true 建立的连接的通知时,我收到了状态为 19 的 BleGattException。根据此消息来源,这意味着 BLE 设备已强制断开连接。因为它通常在收到最后一次通知后大约 30 秒内发生,所以我假设设备只是进入睡眠状态。但是,在这种情况下,指定类型的连接似乎不应该有任何例外......请告知这种行为的原因可能是什么?

0 投票
1 回答
1262 浏览

android - RxBleConnection.setupNotification 仅适用于两个特征中的第一个

我很难弄清楚使用 RxAndroidBle 的意外行为。

问题的简短形式是我需要接收来自特定设备的两个特征的有序通知。在下面的示例中,我扫描 SERVICE_UUID,并为 CHARACTERISTIC_FOO_UUID 和 CHARACTERISTIC_BAR_UUID 设置通知(按顺序)。我需要根据这两个特征的响应做一些事情——在我的示例中,我只是将 byte[] 存储在成员变量中。

我遇到的问题是第一个特征报告回来但不是第二个。如果我翻转订单,它仍然是链中的第一个特征。下面,我展示了调试输出,这表明通知调用发生在两者上,包括低级描述符写入,但由于某种原因,第二个没有报告回来。(假设我订阅了 Observable。)

我已经能够在没有 RxAndroidBle 的情况下让它工作。我还有一个使用 RxAndroidBle 的版本,它可以工作,但使用 ConnectionSharingAdapter 和几个订阅以不同的方式设置。下面的示例是一种更清洁方法的尝试,但正如我所说,似乎不起作用。

这是 RxBle 调试输出 --- 我在输出中用“CHARACTERISTIC_FOO_UUID”编辑了实际的 uuid。

下面是一个使用 RxAndroidBle 的版本的简化示例,它确实可以工作,但有多个订阅和一个 ConnectionSharingAdapter。在这两个版本中,Observable 都将在其他地方订阅,所以我试图避免多个订阅的所有簿记——这里的 CompositeSubscription 和其他地方的其他订阅。上面有问题的方法似乎更实用。在我的实际应用程序中,我正在做的事情更复杂,所以上面的版本实际上变得更容易理解,在这个简化的版本中,它可能看起来更像是更多的代码。

0 投票
3 回答
670 浏览

android - 无虚方法 com_polidea_rxandroidble_internal_radio_RxBleRadioImpl$$Lambda$1_lambda$new$0()V

我是 Android 开发的新手,我尝试在我的应用程序上实现蓝牙 LE 功能。我在使用 RXAndroidBLE 运行我的 android 项目时遇到了一些困难。这个库使用 lambda,我无法让它运行。

我已经更新了我的 gradle 文件:

当我尝试在 MainActivity 中运行以下代码时,会显示错误:

我不知道为什么会出错。

如果有人可以帮助我,那就太好了。谢谢!

0 投票
1 回答
85 浏览

rxandroidble - 确保只有一个 RxBleClient 实例

也许我没有正确理解这种情况,但我们被告知只有一个 RxBleClient 实例很重要。

这不能通过使其成为 Application 类的静态成员来轻松实现吗?

另外,我很难理解这段代码(来自你的 Application 类):

你能帮我理解它在做什么,为什么?为什么不能简单

0 投票
1 回答
213 浏览

java - 订阅的可抛出 onError 组件未按预期编译

尝试使用 Observable 设置对 RxAndroidBle 连接状态的监控。下面的代码编译(我还不能测试它),但我不完全明白为什么。调用的第二个参数subscribe应该是Action1<java.lang.Throwable> onError. 我是否正确实施了这一点?为什么我不能写

当我尝试时,第二个“throwable”被标记为“无法解析符号'throwable'”,并且在“->”和“throw”之间它表示它需要一个右括号、左括号或分号。

TBH 我很难理解 ; 的概念Action1<Throwable>。有人可以解释一下吗?

更新:我想我可能已经弄清楚了。像这样:

(我还为 onCompleted() 调用添加了第三个可选处理程序。)

0 投票
1 回答
1080 浏览

android - 如何处理低功耗蓝牙中的 16 位特征

我一直在寻找这个问题的答案。

我正在编写一个 Android 应用程序来连接蓝牙低功耗设备。我有设备的 128 位服务 ID UUID 和几个 16 位特征 ID。如何在软件中处理这些 16 位值?我是否应该通过将它们与默认的 BLE UUID 组合来将它们扩展到 128 位0000SSSS-0000-1000-8000-00805F9B34FB(其中“SSSS”是 16 位特征 ID 值)?如果不是,那是什么?

我找不到任何关于此的文档,而且我无法通过查看我尝试使用的RxAndroidBle库提供的示例应用程序来弄清楚。

请注意,这是一个独特的设备,我不关心与其他同类设备的兼容性,因为没有。

0 投票
1 回答
108 浏览

android - 如何获得 BleScanException 的原因?

我第一次尝试使用 RxAndroidBle。扫描特定类型设备的单个实例:

我的问题在于订阅调用的“可抛出”代码。我希望能够抛出 BleScanException,但我不知道从哪里获得描述错误原因的正确整数参数。我怎样才能找到这个?

一般来说,我在哪里可以获得有关错误时传递给订阅者的特定 Throwable 的详细信息?

不胜感激有关此方法的任何其他评论。

0 投票
0 回答
257 浏览

java - 读写操作时来自 Rxble 的 129 错误和 133 错误

BleGattException - 在第一次读写操作期间发生,有时它可以正确读写,但在重新连接 ble 设备后会出现此异常...

0 投票
1 回答
726 浏览

rx-java - 反应式调度程序 io 和计算之间的区别?

我的应用程序使用 RxAndroidBle 异步接收来自 BLE 外设的数据包,并将它们组装成一个更大的帧。似乎 Schedulers.io() 是合适的,但我们被警告(没有解释)不要在 io 调度程序上进行“计算”。简单地将字节从一个数组复制到另一个算作“计算”吗?如果是这样,我是否需要创建单独的调度程序,一个用于接收数据包,另一个用于组装帧?那会是什么样子?

0 投票
1 回答
99 浏览

rx-android - 将 Singles 用于 RxAndroidBle 读写是否合适?

我还在学习 Reactive 范式,刚刚遇到了Single<T>andSingleSubscriber<T>类。令我震惊的是,这些可能适用于“一次性”操作,例如通过 BLE 读取或写入控制特性。这有意义吗?优缺点都有什么?它需要 RxAndroidBle 的作者实现吗?任何解释和讨论表示赞赏。