インターネットにアクセスするときにエミュレータを実際のデバイスのように動作させる方法があるかどうか知りたいです。インターネットアクセスを必要とする操作の前に、通常、このような接続を確認します
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 ソケットと接続タイムアウトを設定すると問題が解決すると思いましたが、それでもクラッシュします。