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

标签 android google-nearby

为了试用 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/

相关文章:

javascript - 在 WebView 中捕获某些 Javascript 函数调用

android - 在当前位置 Google map 上显示蓝点图标

android - 扫描 BLE 设备的位置要求

android - 适用于 Android 的附近连接 API - 不适用于某些设备

Android Flurry 测试广告未显示

android - 如何在 android 中永久注入(inject) SELinux 策略?

Android只加载ListView的可见元素

android - NearbyBackgroundBeacons 演示在订阅时返回未知状态代码 2801

android - 附近的连接 NullPointerException

android - 用户通过 Beacons 参与屏幕关闭事件