为多台设备调整Android蓝牙聊天功能

时间:2010-06-01 14:25:10

标签: android bluetooth

我正在做一个关于Android的蓝牙大学项目,我正在努力了解如何管理多个连接设备之间的通信。最终我将开发一款多人蓝牙游戏。

目前我已经使用Android的示例应用程序BluetoothChat来连接我的三款Nexxus One手机。 1连接到2连接到3 1成功发送消息到2. 3也成功发送消息到2。 2可以成功地将其消息发送到1和3,因为它与两者共享ConnectedThread。但我无法弄清楚如何处理从1到3的通信。

有没有人有多个设备之间的通信示例,或者自己做过这个?感谢

2 个答案:

答案 0 :(得分:4)

一种方法是使用发送方和接收方注释您的消息,以便当2获取消息时,它知道将消息传递给3.当3获取消息时,它检查接收方属性以确定它来自设备1.这个额外的层允许您通过其他设备发送和接收消息,并且仍然能够知道它是谁。

首先,您需要弄清楚如何让每台设备都了解网络上的其他所有设备。如果您只是连接一条线路,例如1-2-3-4,那么每次设备进入网络时,您都可以通过网络发送更新的列表,但如果2退出会发生什么?你刚退出游戏吗?等待它重新配对?在这种情况下,最好看一下peer-to-peer网络,或者让一台设备成为主机的典型客户端服务器架构,特别是如果以后这是一个多人游戏。 希望有所帮助!

答案 1 :(得分:0)

可以同时使用多个蓝牙套接字,因此您也可以考虑配置为充当服务器,如IRC或XMPP服务器,它可以代理从任何客户端到另一个客户端的所有通信。

如果您要求出现容错(例如服务器套接字故障),那么在连接到服务器时,它可能会提供最近看到的蓝牙设备列表,如果服务器出现这种情况,您可以重新启动它们下跌降落。