Android设备间通信的API

5

我想知道是否有一种API可以在两个或多个Android设备之间直接通信,特别是用于实时多人游戏。例如,两个设备之间的蓝牙通信是否可以用于游戏目的?

编辑:我没有(可靠的)服务器,因此无法考虑将其作为选项。我正在寻找一种严格使用直接设备通信的API(因此没有服务器)。

3个回答

1
现在有相关的API可以实现这一功能。 “Nearby Connections是一种点对点网络API,允许应用程序轻松地发现、连接和实时交换与附近设备的数据,而不受网络连接的影响。” https://developers.google.com/nearby/connections/overview 另外还可以参考以下内容: Wifi P2P https://developer.android.com/guide/topics/connectivity/wifip2p 选择什么样的内容请参考概述: https://developer.android.com/training/connect-devices-wirelessly PS:我知道这是一个旧问题,但它在搜索引擎中排名非常靠前,因此我添加了这个答案。

1

http://androidforums.com/android-games/57-mages-multiplayer-android-game-engine-chess-game-included.html

这是我在探索网络选项时遇到的一个多人游戏引擎。虽然我没有使用过它,所以无法对其发表深入的意见。

通常情况下,我倾向于创建自己的TCP客户端/服务器解决方案。当然,最适合您的选择取决于您要制作的游戏/应用程序类型。一般来说,如果您计划在单个给定时间内有大量用户(超过3个+),则不建议使用P2P。话虽如此,我也还没有看到过在蓝牙上运行客户端/服务器应用程序的良好解决方案,这使您只能使用传统的网络策略。


还忘了提到WiFi Direct。 WiFi Direct允许您直接通过WiFi进行通信,无需WiFi热点即可在设备之间通信。 WiFi Direct比蓝牙更加灵活,但据我所知,目前仅存在于Nexus Galaxy和运行Android 4.0的智能手机上。 - ocross
是的,我认为我最有可能对制作一个最多两个玩家的游戏感兴趣。我没有一个(或可靠的)服务器来进行严肃的网络游戏,所以我选择了设备之间的直接通信。 - Dan
是的,这通常是一个问题,但是通过WiFi并不意味着您总是需要一个服务器。您可以让客户端充当客户端/服务器,并且只需将该用户指定为客户端/服务器接收和发送数据调用,但是这仅适用于不太多的玩家...没有大型多人在线游戏。@dan,我提到的引擎有什么可以帮助的吗? - ocross
如果它允许一个设备充当服务器,那我一定会研究它。非常感谢你的发现! - Dan

0
如果你正在进行点对点通信,那么蓝牙和/或NFC将是你最好的选择。我建议使用通过Wifi的“互联网”方法,因为它提供了更多的灵活性。

1
我不建议使用NFC,因为它的有效范围只有0.2米,并且传输的数据量非常小,最常见的应用是非常近距离的,例如Bump。 - ocross

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接