2013-02-06 134 views
1

我想知道是否有某種方法讓模擬器在訪問互聯網時像真實設備一樣運行。需要訪問Internet的任何操作之前,我通常檢查連接這樣如何在Android模擬器中模擬真實的移動互聯網連接

public boolean internet(){ 
      ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
      if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
       return true; 
      } 
      return false; 
    } 

但在真機上,當移動接收效果不佳,互聯網連接不實際可用想到互聯網()返回真。這不僅僅是延遲問題或低速問題,它根本沒有發送請求(或者從來沒有得到響應,我不知道)。目前我遇到這個問題時調用

HttpGet request = new HttpGet(new URI(url)); 
HttpResponse response = httpclient.execute(request); 

並不知道如何調試它在真實的設備上。我很確定這是移動互聯網連接的錯誤,因爲當通過Wi-Fi連接相同設備時,我沒有任何問題。 我認爲設置httpclient套接字和連接超時將解決問題,但我仍然崩潰。

+0

請添加崩潰日誌 –

+0

@ Mr.Me如何從設備上獲取日誌? – lelloman

+1

當連接到PC時,您可以看到log扔logcat。否則,你將不得不編寫自己的日誌方法,也許寫任何異常輸出到你的SD卡或 –

回答

3

您可以在啓動模擬器時使用一些參數來模擬此操作。他們全部記錄在這裏: Android Emulator

在這種情況下你想要的參數是:

-netdelay <delay

-netspeed <speed>

他們設置你的仿真器使用連接的等待時間和速度。

對於任何其他問題,您可能需要發佈您的logcat日誌,它可能是連接,並在請求的中間連接下降和設備斷開連接。

+0

這些是可以從eclipse adt ddms角度設置的相同參數,不是嗎?我認爲連接實際上下降,但在系統欄中,我仍然可以看到移動網絡,3g或h或h +,就好像它已連接 – lelloman

+0

那樣,您可以設置來自eclipse的那些連接。 關於下降的連接,我試驗過,因爲我國的連接並不好。 有時Gtalk甚至沒有注意到再也沒有可用的網絡了,所以最多你可以AFAIK是一個超時並優雅地處理錯誤。 – hacksy

相關問題