首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxAndroidBle多重连接

RxAndroidBle多重连接
EN

Stack Overflow用户
提问于 2018-10-10 20:58:45
回答 1查看 487关注 0票数 1

背景:

我正在使用RxAndroidBle库,并要求一次快速(尽可能)连接到多个设备并开始通信。我使用了RxBluetoothKit for iOS,并且已经开始在Pixel 2上使用RxAndroidBle了,这就像预期的那样,我可以根据需要在几百毫秒内建立到6-8设备的连接。然而,将我的测试范围扩大到三星S8和Nexus6P等手机,似乎建立单一连接现在可能需要5到6秒以上,而不是50-60Millis。目前,我将假设这种差异是在厂商专用的BT实现中存在的。最终,这意味着连接到,例如,5个设备现在需要30秒而不是<1秒。

问题:

我从文档和其他问题中了解到,RxAndroidBle对所有扫描、连接和通信请求进行排队,并依次执行这些请求,以确保安全,并根据Android生态系统中蓝牙实现的多样性来保持稳定性。但是,目前是否有一种方法并行执行请求(即连接)以接受此风险,并可能将建立多个连接的总时间减少到连接时间最长的设备?

附带的问题是:有什么想法可以诊断什么可能要花5秒才能与设备建立连接呢?还是我们只需要接受一些手机在某些情况下会花费那么长的时间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-11 15:59:58

但是,目前是否有一种方法并行执行请求(即连接)以接受此风险,并可能将建立多个连接的总时间减少到连接时间最长的设备?

是。您可以尝试使用autoConnect=true建立连接,这将防止锁定队列超过几毫秒。最后一个连接应该用autoConnect=false启动,以启动扫描。一些堆栈实现可以很好地处理这个问题,但是您的里程可能会有所不同。

附带的问题是:有什么想法可以诊断什么可能要花5秒才能与设备建立连接呢?

你可以检查一下蓝牙HCI窥探日志。此外,您也可以尝试使用BLE嗅探器来检查实际发生的“空中”事件(例如,nRF51开发工具包)。

还是我们只需要接受一些手机在某些情况下会花费那么长的时间?

这也是一种选择,因为通常人们对连接时间无能为力。根据我的经验,BLE堆栈/固件实现彼此之间有很大的不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52748690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档