Java 如何使用wifi将数据发送到安装在其他android设备上的同一应用程序
我在我的android设备上安装了一个应用程序,如“A”,在另一个android设备上安装了相同的应用程序,如“B”,现在我想使用WIFI服务将数据从应用程序“A”发送到应用程序“B”。因此,请建议我如何实现此功能 我曾多次试图从谷歌那里得到帮助,但都是徒劳的。Java 如何使用wifi将数据发送到安装在其他android设备上的同一应用程序,java,android,Java,Android,我在我的android设备上安装了一个应用程序,如“A”,在另一个android设备上安装了相同的应用程序,如“B”,现在我想使用WIFI服务将数据从应用程序“A”发送到应用程序“B”。因此,请建议我如何实现此功能 我曾多次试图从谷歌那里得到帮助,但都是徒劳的。 这可以通过WIFI direct或NFC实现。您可以使用简单的p2p架构 您将需要使用和一对与您需要发送的数据类型相关的流,如 在发送方: Socket s = new Socket(IP,PORT); s.connect(); Dat
这可以通过WIFI direct或NFC实现。您可以使用简单的p2p架构 您将需要使用和一对与您需要发送的数据类型相关的流,如 在发送方:
Socket s = new Socket(IP,PORT);
s.connect();
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.write("hello".toByteArray());
然后在接收器端:
ServerSocket ss = new ServerSocket(PORT);
Socket s = ss.accept(); //This call will block execution, use separate thread
DataInputStream dis = new DataInputStream(s.getInputStream);
byte[] data = dis.read();
有了它,您可以发送和接收字节,只需使用与您的数据类型一起工作的流即可
当然,一旦建立了连接,两个客户端都可以发送/写入,只需创建适当的输入/输出流即可
希望这能有所帮助。最合适的方法是使用GCM和GCM接收器是的,我也有这个选项,但我只想在wifi上实现此功能,因为使用wifi用户可以在没有互联网的情况下进行通信。直接的
插座连接可以工作,如果至少有一个设备没有防火墙,而另一个设备具有发现其IP地址的机制。你可能想读一读。GCM也是一个选项,但如果您尝试在设备之间建立点对点连接(听起来像是这样),则通常不会。是的,设置一个条件,即当wifi可用时,使用GCM将数据同步到其他设备,您的第二台设备将通过广播接收器接收通知。使用内置的网络服务发现API,您的第二台设备将发出尖叫,是的。您还需要以拒绝虚假连接尝试的方式实现通信协议(例如,通过要求复杂/加密安全的握手)。如果你真的担心你的一些数据可能被截获,考虑加密整个交换。如果答案已经解决了,请接受答案。