Android - 两台设备之间的通信

Zis*_*han 21 android

安装在两台设备上的Android应用程序相互通信的最佳方式是什么?设备可以直接连接而无需使用短信吗?

Zvi*_*ika 18

您有多种选择,具体取决于您的要求和设置:

  • 如果您的设备非常靠近(最长约10米),您可以使用蓝牙进行通信,如Derek建议的那样.
  • 如果您的设备距离较远,但在相互之间的WiFi范围内(最多约100米),那么他们可以使用点对点WiFi API相互通信,此处记录(Android Wireless API的一部分) .这不需要WiFi路由器,设备将相互找到并直接通信.但是,这需要Android 4.1或更高版本.
  • 如果您的设备位于同一本地网络(即使用相同的WiFi路由器),即使它们本身不在彼此的范围内,Android无线API也将起作用.
  • 如果这些选项都不可行/保证,那么我同意Derek最简单的方法是使用ServerSocket和Socket通过Internet创建服务器/客户端接口.这是一个示例应用程序.您可能遇到的主要问题是,如果服务器位于NAT后面(例如家庭互联网路由器),则必须配置NAT以将传入的数据包转发到您的Android服务器.


Der*_*ton 14

您可以使用BluetoothSockets通过蓝牙连接它们.Android开发者网站上有很好的文档.

http://developer.android.com/guide/topics/wireless/bluetooth.html

或者如果你更愿意(并且在两个设备上都有互联网),你可以使用常规的Socket.

http://developer.android.com/reference/java/net/ServerSocket.html用于服务器端 http://developer.android.com/reference/java/net/Socket.html用于客户端

如果要传输大量数据,则Internet套接字具有更大的数据容量并且速度更快.另一个优点是没有"超出范围"的事情.您可以在互联网可用的地方连接两个设备,而使用蓝牙,它们必须在彼此的蓝牙范围内

  • "WiFi-Direct"也不是一个选择吗? (2认同)