当用户处于无信号区域或手机处于飞行模式时,我想测试我的应用程序的行为。
->如何将 Android 虚拟设备置于离线模式(无法连接到互联网)?
我尝试了以下方法:
通过 AVD 设置激活飞行模式:令人惊讶的是,这不起作用(在飞行模式下仍然可以浏览互联网!)
在我的电脑上禁用网络连接:这显然有效,但并不令人满意,因为我在测试我的应用程序时需要互联网
无线上网:
$ adb shell svc wifi enable
$ adb shell svc wifi disable
移动数据:
$ adb shell svc data enable
$ adb shell svc data disable
我看到所有相同的问题。DDMS 并没有完全杀死它。F8也不行。在模拟器内打开飞行模式也没有。我们都应该在 2009 年登录的这个问题上加注星标。
我找到了一个可行的解决方案。在 Android 6.0 和 7.0 模拟器上测试,但应该适用于其他模拟器。
网络中断:
adb shell ifconfig eth0 down
联网:
adb shell ifconfig eth0 up
如果您收到“权限被拒绝”错误,请以 root 身份重新启动 adb 守护程序:
adb root
然后再试一次。
您应该在模拟器窗口中按 F8,它会根据以下内容关闭手机网络:http: //developer.android.com/guide/developing/tools/emulator.html。但是我测试了它,它也不起作用!只有消息说没有互联网连接,但它确实有效......
Instead of using Airplane mode in the Android emulator ( which does not work too well ) , switch off the network connectivity to your system while testing. That is , switch of the Ethernet connectivity or Wi-fi . Worked well for me.
当我将语音和数据调整为“未注册”而不是“拒绝”时,我在“模拟器控制”视图中发现对我有用。现在我终于让网络的 AVD 离线了,而我仍然可以发布这个答案。
我所做的就是进入窗口菜单,选择“打开透视图->其他”打开 DDMS 透视图。在 DDMS 透视图中,您有一个“模拟器控制”视图,您可以在其中调整延迟、漫游,您可以为其提供不同的电话和数据状态。因此,按照此过程获取模拟器视图,然后转到“数据”下拉菜单并选择“拒绝”选项。
James Koch 提到的问题的一条评论说,有一种解决方法:
评论 15 来自 iscy%inv...@gtempaccount.com,2011 年 7 月 8 日 终于找到了解决这个问题的方法: telnet localhost 5554 // 连接模拟器 qemu monitor //进入QEmu功能 info network //列出网络适配器“user.0”通常是名称 set_link user.0 down // 关闭网络 set_link user.0 up // 重新启用网络
但:
评论 16 来自 leonhard...@gmail.com,2011 年 9 月 6 日 此解决方法不适用于 MacOS 10.7.1 和 SDK rev 12(平台 2.2、2.1 和 2.3.3) …… qemu监控器 KO:内部错误:无法从控制台分离!
-> 在 Windows Vista、SDK rev 19 和平台 10 (2.3.3) 上我也一样
但也许这对某人有用......
最后,这个方法怎么样。
android-sdks/tools/emulator -avd [AVD name goes here] -qemu -net nic,vlan=0 -net user,vlan=1
实际上,这是一个技巧,因为以下会使我的模拟器崩溃:
android-sdks/tools/emulator -avd [AVD name goes here] -qemu -net none
在 Debian 上使用 Android 模拟器 V21.0 进行测试。
老问题,但我找到了解决方案:
cmd
更改为 android 工具文件夹
cd C:\Program Files\Android\android-sdk\tools
使用虚假 DNS 服务器运行模拟器。更改2.3.3
为您的 AVD 的名称。@ 使它开始:
emulator.exe @2.3.3 -dns-server 127.0.0.1
查看手册以获取更多命令行选项。