2011-09-16 22 views
6

我試圖寫我自己的android http服務器。這很好,但我的AVD有問題。每次我想測試更改時,我都不想將我的應用程序下載到手機中。我想通過AVD連接到我的應用程序。 爲了得到我使用這個功能的IP地址:如何連接到AVD

private String getLocalIpAddress() { 


     try { 
      for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
       NetworkInterface intf = en.nextElement(); 
       for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
        InetAddress inetAddress = enumIpAddr.nextElement(); 
        if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } 
       } 
      } 
     } catch (SocketException ex) { 
      Log.e("ServerActivity", ex.toString()); 
     } 
     return null; 
    } 

在我的手機一切正常良好,但是當我在AVD運行我的應用程序是否顯示IP:10.0.2.15 ,我無法連接到它。 有什麼方法可以連接到我在AVD上運行的應用程序嗎? 如果它確實很重要我的應用程序使用端口8080.

+0

好像防火牆問題。 – doNotCheckMyBlog

回答

0

儘管我不知道直接回答您的問題,但我知道從AVD連接到計算機時,必須使用10.0.2.2,因爲您的AVD基本上落後於另一個「路由器」。它不會從您的路由器獲得本地LAN IP。有關更多信息,請參閱this問題。從this鏈接,他引用:

模擬器的每個實例後面的虛擬路由器/防火牆 服務,從您的開發機器的網絡隔離開 接口和設置,並從互聯網上運行。仿真設備 不能在 網絡上看到您的開發機器或其他仿真器實例。相反,它只能看到它通過以太網 連接到路由器/防火牆。

6

遠程登錄到該設備(假設它是在端口5554):

遠程登錄本地主機5554

在Android的控制檯提示使用重定向:

再導向添加TCP:8080:8080

指向瀏覽器'http://127.0.0.1:8080/'現在應該發送並接收到AVD。

的禮貌: http://www.rhill.co.uk/?p=35

+0

目前尚不清楚,'redir'命令需要從哪裏來,它並不存在於最新的圖像中。 –