2011-11-01 136 views
1

電話信息(可能通過USB使用ADB): 的Droid仿生 的Android 2.3.4 USB調試啓用Android客戶端應用程序

我期待到撰寫個人使用,在那裏我可以從發送數據的應用客戶端(在電話上)到服務器應用程序(在我的電腦上),希望通過USB。我發現使用Android 2.3.4的唯一建議是使用ADB,然後使用TCP轉發進行操作。

我寫了一個簡單的服務器和客戶端應用程序使用端口8001的計算機之間,但我有問題讓我的android上的客戶端與我的計算機上的服務器部分一起工作。我可以創建一個套接字來與我的計算機(192.168.1.26,8001)交談,但是似乎無法使其工作,因爲java在android設備上與我製作的comptuer客戶端不同。有誰知道一個非常簡單的教程或示例,我可以將它看作是將客戶端連接到服務器的一部分?我所看過的所有前面的例子都很複雜。

至於USB部分,我希望能夠讓我的應用程序在不通過網絡的情況下工作。我已經看到有關使用「ADB forward tcp:port tcp:port」的問題,但是對整個事情有點困惑。我爲客戶端上的套接字設置了什麼IP地址和端口號,並將服務器留在8001端口上?如果我不想使用8001端口,我可以通過ADB使用什麼命令?

謝謝

回答

5

如果你想在電腦上轉發TCP端口8001到端口8001的手機上,你會使用這個命令:

adb forward tcp:8001 tcp:8001

您可以更改端口如果需要,可以是手機或設備。該命令的文檔在這裏:http://developer.android.com/guide/developing/tools/adb.html#forwardports

至於爲什麼這不應該 - 你的問題中缺少一些信息。這些只是標準的TCP套接字。 Java版本不應該有任何區別,所以我不明白你的問題。運行在您計算機上的客戶端可以用任何語言(Ruby,C++等)編寫。

+0

謝謝你的幫助。 當我在手機上設置一個套接字時,我應該繼續使用192.168.1.26的IP地址嗎?或者這並不重要? – flip66

+1

它將在兩個設備上顯示爲本地套接字。所以,你應該在兩端使用127.0.0.1(環回地址)。 (其他IP地址可能會工作,具體取決於您的防火牆設置以及adb如何配置爲綁定。但是,您需要隨時更新IP地址。使用127.0.0.1將始終有效。) –

3

我剛剛完成了一個應用程序,將攝像頭視頻源從2個Android手機傳輸到我的電腦。

adb devices 

你應該得到這樣的事情:這是你的PC上

首先運行

xxxyyy1 device 
xxxyyy2 device 

記下xxxyyy1,並xxxyyy2序列號給,然後運行這兩個命令:

adb -s xxxyyy1 forward tcp:8001 tcp:8002 
adb -s xxxyyy2 forward tcp:8003 tcp:8004 

這2個端口轉發將僅適用於給定的設備編號,因此您的PC可以n現在獨立與設備進行通信。