我有一個應用程序在我的Android設備上,如「A」和相同的應用程序安裝在其他Android設備上,如「B」,現在我想發送數據從應用程序「A」到使用WIFI服務的應用程序「B」。所以請建議我如何實現此功能。如何將數據發送到安裝在使用WiFi的其他Android設備上的相同應用程序
我嘗試了很多次從谷歌獲得幫助,但都是徒勞的。 它可以從WIFI直接或NFC。
我有一個應用程序在我的Android設備上,如「A」和相同的應用程序安裝在其他Android設備上,如「B」,現在我想發送數據從應用程序「A」到使用WIFI服務的應用程序「B」。所以請建議我如何實現此功能。如何將數據發送到安裝在使用WiFi的其他Android設備上的相同應用程序
我嘗試了很多次從谷歌獲得幫助,但都是徒勞的。 它可以從WIFI直接或NFC。
您可以使用簡單的p2p架構。
您將需要使用this,this和一對適用於您需要發送的數據類型的數據流,如this。
在發送方:
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();
有了這個,你可以發送和接收的字節,只需使用與您的數據類型的工作流。
當然,一旦建立連接,兩個客戶端都可以發送/寫入,只需製作適當的輸入/輸出流。
希望這會有所幫助。
感謝@Nanoc你的回答是非常有幫助的.. –
接受答案,如果它已經解決了你的問題,請。 – Nanoc
最合適的方法是使用GCM和GCM接收機 –
是的,我有這樣的選擇也是,但我想要實現的只有WiFi這一功能,因爲使用WiFi用戶可以在無需互聯網溝通.. –
直接'Socket'如果至少有一個設備沒有被防火牆,而另一個設備具有發現其IP地址的機制,則連接將起作用。你可能想要閱讀[這裏](http://developer.android.com/training/connect-devices-wirelessly/nsd.html)。 GCM也是一種選擇,但通常情況下,如果您嘗試在設備之間進行點對點連接(這聽起來就像是您),通常不會。 – aroth