Monodroid GenyMotion通过代码访问互联网

时间:2013-09-02 13:19:27

标签: android-emulator xamarin.android virtualbox

过去一周我一直在努力让这个工作起来。我已经下载了这个奇妙的工具,它是用于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对象访问代码时抛出异常?感谢

1 个答案:

答案 0 :(得分:0)

这不是你的代码:你发现genymotion不在互联网上 - 这个缺陷是由官方设计。发生这种情况是因为genymotion(VirtualBox的包装器)断开正确的适配器(您可能已经或可能没有在VirtualBox中设置)并使用它自己的(有故障的)“仅主机适配器”网络设置,然后HIDES它这样做。

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