0

在过去的一周里,我一直在努力让它发挥作用。我已经下载了这个很棒的工具,它是 Android 的 genymotion 模拟器。但是我无法从我的代码行访问互联网。

        using( WebClient wbclient = new WebClient() )
        {
            try
            {                    
                String URI = "http://www.timeapi.org/utc/now"; // test purpose only
                Stream s = wbclient.OpenRead( URI );
                using( StreamReader r = new StreamReader( s ) )
                {
                    string str = r.ReadToEnd();
                }
            }catch(Exception ex)
            {
               // handle...
            }
        }

这是一个返回时间的简单服务。如果我在访客设备 genymotion ( android 4.2.2 - API 17 ) 的浏览器中输入此地址,浏览器将完美运行并返回时间。但是上面的代码抛出异常“连接超时”。为什么在我的访客设备中可以从浏览器中检索上述 url 并正确显示时间并在通过 WebClient 对象访问代码时抛出异常?谢谢

4

1 回答 1

0

这不是你的代码:你发现 genymotion 不在互联网上——这个缺陷是官方设计的。发生这种情况是因为 genymotion(VirtualBox 的包装器)断开了正确的适配器(您可能在 VirtualBox 中设置或未设置)并使用它自己的(错误的)“仅主机适配器”网络设置,然后隐藏它确实这个。

要修复这个非常不公平的“错误”(功能?),您必须进入 VirtualBox,按名称找到 GenyMotion 机器,然后关闭它,右键单击“设置”网络,然后单击“适配器 2”(选项卡)和勾选“启用网络适配器”然后单击“附加到:> 桥接适配器”假设您的电脑在 DHCP 下运行它,它将为 GenyMotion 声明为它自己的 Android VM 设置一个 IP(它不是)

于 2013-11-27T11:40:17.200 回答