2015-09-28 43 views
4

我有一個應用程序在我的Android設備上,如「A」和相同的應用程序安裝在其他Android設備上,如「B」,現在我想發送數據從應用程序「A」到使用WIFI服務的應用程序「B」。所以請建議我如何實現此功能。如何將數據發送到安裝在使用WiFi的其他Android設備上的相同應用程序

我嘗試了很多次從谷歌獲得幫助,但都是徒勞的。 它可以從WIFI直接或NFC。

+0

最合適的方法是使用GCM和GCM接收機 –

+0

是的,我有這樣的選擇也是,但我想要實現的只有WiFi這一功能,因爲使用WiFi用戶可以在無需互聯網溝通.. –

+1

直接'Socket'如果至少有一個設備沒有被防火牆,而另一個設備具有發現其IP地址的機制,則連接將起作用。你可能想要閱讀[這裏](http://developer.android.com/training/connect-devices-wirelessly/nsd.html)。 GCM也是一種選擇,但通常情況下,如果您嘗試在設備之間進行點對點連接(這聽起來就像是您),通常不會。 – aroth

回答

4

您可以使用簡單的p2p架構。

您將需要使用thisthis和一對適用於您需要發送的數據類型的數據流,如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(); 

有了這個,你可以發送和接收的字節,只需使用與您的數據類型的工作流。

當然,一旦建立連接,兩個客戶端都可以發送/寫入,只需製作適當的輸入/輸出流。

希望這會有所幫助。

+0

感謝@Nanoc你的回答是非常有幫助的.. –

+0

接受答案,如果它已經解決了你的問題,請。 – Nanoc

相關問題