1

インターネットにアクセスするときにエミュレータを実際のデバイスのように動作させる方法があるかどうか知りたいです。インターネットアクセスを必要とする操作の前に、通常、このような接続を確認します

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

しかし、実際のデバイスでは、モバイルの受信状態が悪い場合、internet() が true を返したとはいえ、インターネット接続は実際には利用できません。これは、遅延の問題や低速の問題だけではなく、リクエストがまったく送信されない (または、応答が得られない、わかりません) だけではありません。現在、電話時にこの問題が発生しています

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

実際のデバイスでデバッグする方法がわかりません。同じデバイスがWi-Fi経由で接続されている場合は問題ないので、モバイルインターネット接続のせいだと確信しています。httpclient ソケットと接続タイムアウトを設定すると問題が解決すると思いましたが、それでもクラッシュします。

4

1 に答える 1

3

エミュレーターの起動時に、いくつかのパラメーターを使用してこれをエミュレートできます。それらはすべてここに文書化されています: Android Emulator

この場合、必要なパラメーターは次のとおりです。

-netdelay <delay

-netspeed <speed>

エミュレータが使用する接続のレイテンシと速度を設定します。

その他の問題については、logcat ログを投稿する必要がある場合があります。接続しているときに、リクエストの途中で接続が切断され、デバイスが切断される可能性があります。

于 2013-02-06T21:47:35.970 に答える