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 回答