2014-11-14 78 views
2

我有一個應用程序的想法,但沒有在這方面的Android開發或網絡的經驗,所以想要有一些原始的反饋,不管這是否可能。在沒有服務器的2個Android手機之間傳輸數據?

我想在不使用服務器的情況下使用WiFi /移動網絡在兩個或更多Android手機之間傳輸文件,文本等。 也許一個設備擁有者可以發送一個特定的字符串來唯一標識該設備,即IP地址,以便與其共享數據的其他設備。

例如,A想要發送一些文件給B.他告訴B他的標識字符串是「192.168.1.1:4321」。 B現在將該字符串輸入到他的設備上的應用程序中。也許這種方式可以在兩個設備之間建立連接。

有兩種可能的情況:

  1. A和B是彼此鄰近,使他們可以訪問相同的WiFi網絡。
  2. A和B位於不同的地理位置,因此無論是使用移動網絡還是使用不同的WiFi區域。

編輯:讓我們只想說,有在該地區沒有WiFi,只有其中一個設備有移動網絡數據計劃。該人是否可以創建一個WiFi熱點,以便他可以充當僞服務器,然後其他人可以連接到此WiFi來傳輸數據,而無需使用唯一的ID字符串?

+4

爲什麼不使用:Wi-Fi直? http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html – 2014-11-14 17:41:12

+0

同意。或使用藍牙。或者在Android Beam上使用NFC。或直接使用NFC(如果您有耐心使用者)。或者使用NFC作爲自己的引導機制,通過藍牙或WiFiDirect進行數據傳輸。 – CommonsWare 2014-11-14 17:42:59

+0

更新了問題 – 2014-11-14 17:45:31

回答

2

對於情景1:是的,你可以使用wifi p2p(aka wifi direct)建立一個P2P本地wifi網絡進行文件傳輸。我看到使用此技術開發的應用程序可以在演示中共享媒體文件。它需要Android 4.0或更高版本。
對於scenario2:恐怕最簡單的解決方案是讓您的應用程序與服務器通話。但是,如果您要構建的這個應用程序只是個人愛好項目,則可以嘗試安裝FTP server,並讓您的應用程序作爲客戶端與FTP服務器通話。這樣,手機既可以作爲服務器也可以作爲客戶端,並且根本不需要中央服務器。顯然,建立起來非常困難,並且不會成爲投放市場的好主意。

+0

更新了兩種可能情況下的問題 – 2014-11-14 17:45:52

+0

我可以使用WiFi熱點消除唯一ID字符串的需求嗎?有關更多詳細信息,請參閱相關修改。 – 2014-11-29 05:16:15

0

我認爲在這兩種情況下你都需要做端口轉發。因爲即使在WiFi中,數據也會通過路由器。特別是如果您處於不同的網絡中。對於公共使用,你不能擺脫兩個客戶端可以連接的服務器,然後你可以在它們之間發送數據......否則你的應用程序的每個用戶都需要轉發端口...如果我錯了,請糾正我的錯誤,但是我敢肯定...

更新: 作爲DXM提到的場景1可能是可能的。但方案B每一個用戶都需要轉發端口...

+0

爲什麼某人不提供我的答案而不提供最新的錯誤信息,並幫助我和其他用戶在未來獲得更好的技術訣竅。在我看來,連接到不同網絡中的其他設備是不可能的,沒有前端轉發或「中央服務器」。正如我在回答中所說的,如果我錯了,請糾正我的錯誤......還提供了有關dmx答案的更新,爲threadopener提供更好的反饋。完全喜歡這個...... – Mike 2014-11-17 23:36:23

+0

我沒有downvote,但我現在upvoting。你能否在問題中更新你的答案進行編輯。我正在考慮是否可以使用WiFi熱點來避免端口轉發? – 2014-11-29 05:19:10

相關問題