能够使用附近的连接同时向多个设备发送消息/字节

时间:2018-10-12 06:03:08

标签: android google-nearby

要尝试使用附近的API,我决定构建一个应用程序,以允许教师跟踪学生在课堂上的出勤情况。 与Caren Chang的操作类似。

我经历了google sample codes on rockpaperscissors and walkietalkie

但是当我使用4部手机测试样本时,似乎只有一个设备可以随时连接

我想构建一个老师和学生的应用程序,该老师可以发布广告并发现学生,并随着教室中更多设备的连接而将有效负载同时发送到每个连接的设备。

如何使用附近的api同时连接数据并将其发送到新设备和多个设备?

1 个答案:

答案 0 :(得分:2)

这是一个很好的用例,也是我们过去讨论过的一个用例。

如果它专门用于出席会议,那么您无需建立联系。您可以让一台设备不断扫描,而每台设备都做广告。您将以这种方式快速建立设备列表。

但是,如果您想做的不只是出勤,例如将作业推送到每个人的设备,您将需要构建一个网格。首先,您将要使用Strategy.P2P_CLUSTER。我们在附近的连接中提供了3种策略(CLUSTER,STAR,POINT_TO_POINT),而集群是最通用的一种。使用群集,您可以连接到任意数量的设备,并且可以从任意数量的设备接收传入的连接。或者,几乎...手机内部的蓝牙无线电很弱,一次只能保持3〜4个连接。

为了能够连接所有约30个设备,我建议形成“蛇形”连接。设备的头部和尾部将同时进行扫描和播发(并且未连接到任何人的设备被视为长度为1的蛇)。头部和尾部将保持彼此连接(请确保不与自身连接*),并且很快就会有很长的连接链将每个人连接在一起。从那里,您可以将消息转发到链的下游,以确保每个人都能收到它。

  • 为避免与自己建立联系,您可以为每个设备分配一个随机数(例如1、4、8、10),然后每个设备都尝试连接到下一个最高编号,或者在连接和如果您收到回声,请断开连接(因为广播转了一圈)。