Android BLE设计模式可行性

时间:2018-03-28 18:34:05

标签: android bluetooth bluetooth-lowenergy android-ble

我在各种网站上看了很多关于android BLE堆栈的主题。从我收集的内容来看,android中的蓝牙堆栈是不可靠的,不适合任何快速和并发连接。

我目前被分配到一个以BLE为主要经营理念的项目。我们的想法是在每扇门的顶部设置BLE设备,使用ibeacon框架向手机做广告(支持iOS和Android)。而Android应用程序将读取广告并通过GATT连接到它并进行特征性写入。最大的问题是项目需要快速写入它传递的每个信标(在6s内连接和写入特性)。

这意味着必须经常对经过的每扇门进行扫描和书写。我知道android 7及以上版本每30秒最多有5次启动/停止扫描。因此,我的逻辑使用3秒扫描的间隔,然后对它发现的每个信标进行3秒写入。例如。在3s扫描期间,应用程序找到3个信标,这3个被添加到队列中。写入队列3秒后出队并逐个进行连接并为每个找到的信标写入。

扫描和写作是我听到的相互交错,并且在一起做时会遇到很多问题。例如连接时的高故障率 - >写特色。然而,通过使它们相互移动,这意味着如果我走过带有信标的多个门,我只能连接并写入有限数量的信标。

我的连接和写入逻辑包含1.5秒的默认重试超时,最多3次重试。每个gatt动作,如.connect,.discovery都包含200ms的延迟。

我想知道以下问题

  1. 连接然后写入特征(不包括扫描)所需的平均时间是多少。我试过并且看起来某些手机的速度要慢到500毫秒,而其他一些手机需要长达4.5秒,或者只是无法建立连接和写入。

  2. 整个想法是否可行?整个项目最多需要6s才能连接并写出通过它的每扇门的特征。

  3. 有什么改进吗?

0 个答案:

没有答案