Android模拟器不能访问网络的解决方法
今天在公司实习,遇到了这个问题。最先我是建立一个HttpURLConnection,然后通过建立一个URL地址,去连接服务器,竟然发现模拟器不能访问网络。很奇怪,因为我在学校并没有碰到这个问题。后来网上google了一大堆,其实都没有解决我的问题。网上解决的都是通过代理上网的问题,我在公司应该不是用的代理上网,所以那些解决方案我并不适用。
其实,对于一些公司,尤其是大公司,网络网络是有限制的,Android模拟器其实就是一个虚拟机,通过wireshark抓包分析软件(网上可以下载,是一个开源软件),我确定android模拟器的ip并不是网上某些人说的10.0.0.2,通过抓包分析,清楚地显示申请源的地址就是我本机的IP。
于是我怀疑是默认浏览器设置问题。我试着在模拟器里面通过adb install 命令安装了一个XX浏览器(刚好在这家公司实习,可能问题就在这里。),发现竟然可以联网而诡异的是模拟器自带的浏览器不能访问网络。后来在其它工程师的指导下,我看到了User-Agent:,并通过setRequestProperty方法将user-agent改成了xx浏览器的信息,这样,我建立的HttpURLConnection就冒充了XX浏览器,然后就可以访问网络了。参见http://topic.csdn.net/u/20110509/15/2cb8f453-599f-4f70-809a-482438e76a4f.html。原因应该就是公司的网络防火墙的问题。
不过有一个不足之处我正在检查,就是这样的做速度特别慢。