场景
- 模拟器中跑Android Q版本的网络状态判断
在适配AndroidQ时会需要适配新的网络状态判断,如果是正常开启Android Studio 中内置的模拟器来测试的话会出现问题,由于内置的模拟器是默认不开启的,那如何在Android模拟器上启用互联网呢?其实很简单,只要设置电脑的DNS服务器就OK了,下面列举不同系统电脑的配置
- Windows
- 打开网络和共享中心,然后单击当前连接
- 单击“属性”
- 双击Internet协议版本4(TCP / IPv4)
- 将首选和备用DNS服务器设置为(下面的屏幕截图):
8.8.8.8
8.8.4.4
tip:
1.打开网络和共享中心–查看网络活动模块处–点击右面的连接–弹出网络状态框
2.点击–属性–弹出网络连接属性
3.双击【Internet 协议版本4(TCP/IPv4) 】
4.点击使用下面的DNS服务器地址–参照图片直接地址
- Mac
- 转到设置>网络>高级…> DNS
- 删除您在那里的任何条目并添加这两个条目(下面的屏幕截图):
8.8.8.8
8.8.4.4
注意:对于Mac用户,如果条目字段已禁用且您无法编辑它,请单击该窗口底部区域中的“锁定”图标并输入密码以便能够进行更改
重新启动模拟器,这时模拟器的wifi已将DNS更改为8.8.8.8以外的其他情况的修复.虽然这在大多数情况下都有效,但可能还有其他原因可能无法解决此问题.
注:如果以上方法未能解决,可以用下面的粗暴方法解决
由于模拟器的DNS与电脑的DNS不一致而导致模拟器的网络状态一直连不上,只要手动修改一下模拟器的DNS就可以了。
一、 打开SDK所在目录
进入你电脑上skd的安装目录下的emulator文件夹。【(Shift+右键–打开命令模式)或者(在地址栏输入cmd)】,打开之后就自动进入到当前文件夹中了。
模拟器未开启的状态下,在命令行输入如下命令: (Pixel_3_API_29替换成你自己的模拟器名字,其他不变)
emulator -avd Pixel_3_API_29 -dns-server 8.8.8.8,114.114.114.114
回车之后,系统会帮你启动你电脑中名叫Pixel_3_API_29的模拟器,此时模拟器便可以上网了。这种方式最简单粗暴,但也最麻烦,因为这只是一次性的,如果下次不输入这行命令,模拟器还是不能上网,所以每次启动前都要输入这行命令。如果想一劳永逸,可以百度一下如何更改模拟器DNS,网上很多教程。
上面那个步骤如果不知道自己要启动的模拟器的那个名字,一般可以在C盘中的 .android\avd 目录下找到你创建过的所有模拟器