问题标签 [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.
rxandroidble - 自动连接=真时出现 RxAndroidBLE BleGattException
一段时间后,在观察使用 autoconnect=true 建立的连接的通知时,我收到了状态为 19 的 BleGattException。根据此消息来源,这意味着 BLE 设备已强制断开连接。因为它通常在收到最后一次通知后大约 30 秒内发生,所以我假设设备只是进入睡眠状态。但是,在这种情况下,指定类型的连接似乎不应该有任何例外......请告知这种行为的原因可能是什么?
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 和其他地方的其他订阅。上面有问题的方法似乎更实用。在我的实际应用程序中,我正在做的事情更复杂,所以上面的版本实际上变得更容易理解,在这个简化的版本中,它可能看起来更像是更多的代码。
android - 无虚方法 com_polidea_rxandroidble_internal_radio_RxBleRadioImpl$$Lambda$1_lambda$new$0()V
我是 Android 开发的新手,我尝试在我的应用程序上实现蓝牙 LE 功能。我在使用 RXAndroidBLE 运行我的 android 项目时遇到了一些困难。这个库使用 lambda,我无法让它运行。
我已经更新了我的 gradle 文件:
当我尝试在 MainActivity 中运行以下代码时,会显示错误:
我不知道为什么会出错。
如果有人可以帮助我,那就太好了。谢谢!
rxandroidble - 确保只有一个 RxBleClient 实例
也许我没有正确理解这种情况,但我们被告知只有一个 RxBleClient 实例很重要。
这不能通过使其成为 Application 类的静态成员来轻松实现吗?
另外,我很难理解这段代码(来自你的 Application 类):
你能帮我理解它在做什么,为什么?为什么不能简单
java - 订阅的可抛出 onError 组件未按预期编译
尝试使用 Observable 设置对 RxAndroidBle 连接状态的监控。下面的代码编译(我还不能测试它),但我不完全明白为什么。调用的第二个参数subscribe
应该是Action1<java.lang.Throwable> onError
. 我是否正确实施了这一点?为什么我不能写
当我尝试时,第二个“throwable”被标记为“无法解析符号'throwable'”,并且在“->”和“throw”之间它表示它需要一个右括号、左括号或分号。
TBH 我很难理解 ; 的概念Action1<Throwable>
。有人可以解释一下吗?
更新:我想我可能已经弄清楚了。像这样:
(我还为 onCompleted() 调用添加了第三个可选处理程序。)
android - 如何处理低功耗蓝牙中的 16 位特征
我一直在寻找这个问题的答案。
我正在编写一个 Android 应用程序来连接蓝牙低功耗设备。我有设备的 128 位服务 ID UUID 和几个 16 位特征 ID。如何在软件中处理这些 16 位值?我是否应该通过将它们与默认的 BLE UUID 组合来将它们扩展到 128 位0000SSSS-0000-1000-8000-00805F9B34FB
(其中“SSSS”是 16 位特征 ID 值)?如果不是,那是什么?
我找不到任何关于此的文档,而且我无法通过查看我尝试使用的RxAndroidBle
库提供的示例应用程序来弄清楚。
请注意,这是一个独特的设备,我不关心与其他同类设备的兼容性,因为没有。
android - 如何获得 BleScanException 的原因?
我第一次尝试使用 RxAndroidBle。扫描特定类型设备的单个实例:
我的问题在于订阅调用的“可抛出”代码。我希望能够抛出 BleScanException,但我不知道从哪里获得描述错误原因的正确整数参数。我怎样才能找到这个?
一般来说,我在哪里可以获得有关错误时传递给订阅者的特定 Throwable 的详细信息?
不胜感激有关此方法的任何其他评论。
java - 读写操作时来自 Rxble 的 129 错误和 133 错误
BleGattException - 在第一次读写操作期间发生,有时它可以正确读写,但在重新连接 ble 设备后会出现此异常...
rx-java - 反应式调度程序 io 和计算之间的区别?
我的应用程序使用 RxAndroidBle 异步接收来自 BLE 外设的数据包,并将它们组装成一个更大的帧。似乎 Schedulers.io() 是合适的,但我们被警告(没有解释)不要在 io 调度程序上进行“计算”。简单地将字节从一个数组复制到另一个算作“计算”吗?如果是这样,我是否需要创建单独的调度程序,一个用于接收数据包,另一个用于组装帧?那会是什么样子?
rx-android - 将 Singles 用于 RxAndroidBle 读写是否合适?
我还在学习 Reactive 范式,刚刚遇到了Single<T>
andSingleSubscriber<T>
类。令我震惊的是,这些可能适用于“一次性”操作,例如通过 BLE 读取或写入控制特性。这有意义吗?优缺点都有什么?它需要 RxAndroidBle 的作者实现吗?任何解释和讨论表示赞赏。