为了试用 nearbyAPI,我决定构建一个应用程序,允许教师跟踪学生在类里面的出勤情况。 类似于Caren Chang正在做。
我已经完成了 google sample codes on rockpaperscissors and walkietalkie
但当我使用 4 部手机测试样本时,在任何时候似乎只有一台设备可以连接。
我想构建一个教师和学生应用程序,教师宣传和发现学生,随着教室设置中更多设备的连接,同时向每台连接的设备发送有效负载。
我如何使用附近的 api 连接并同时向多个新设备发送数据?
最佳答案
这是一个很好的用例,我们过去也讨论过。
如果是专门为了考勤,那么就不需要建立连接。您可以让每台设备在一台设备不断扫描的同时进行广告宣传。您将以这种方式快速建立设备列表。
但是,如果您想做的不仅仅是出勤,例如将作业推送到每个人的设备上,您就需要构建一个网格。首先,您需要使用 Strategy.P2P_CLUSTER。我们在 Nearby Connections 中提供了 3 种策略(CLUSTER、STAR、POINT_TO_POINT),而 cluster 是最通用的一种。使用群集,您可以连接到任意数量的设备,并且可以接收来自任意数量设备的传入连接。或者,几乎...手机内的蓝牙 radio 很弱,一次只能保持 3~4 个连接。
为了能够连接所有约 30 台设备,我建议形成“蛇形”连接。设备的头部和尾部将同时扫描和广播(没有连接到任何人的设备被认为是长度为 1 的蛇)。头部和尾部将保持相互连接(确保不连接到自身*),您很快就会拥有一长串连接,将每个人连接在一起。从那里,您可以沿着链转发消息,以确保每个人都能收到消息。
- 为避免连接到自己,您可以为每台设备分配一个随机数(例如 1、4、8、10),然后每台设备尝试连接到下一个最大的数字,或者您可以在连接时广播一条消息,然后如果收到回声(因为广播转了一圈),请断开连接。
关于android - 能够使用附近连接向多个设备同时发送消息/字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52773197/