如何将AVD(仿真器)置于离线模式?

时间:2010-10-24 14:18:25

标签: android avd

我想在用户处于无信号区域或手机处于飞行模式时测试我的应用程序的行为。

- > 如何将Android虚拟设备置于离线模式(无法连接互联网)?

我尝试了以下内容:

  • 通过AVD设置激活飞行模式:令人惊讶的是,这不起作用(在飞行模式下仍可以浏览互联网!)

  • 在我的电脑上禁用网络连接:这显然有效,但由于我在测试应用时需要互联网,因此效果不理想

11 个答案:

答案 0 :(得分:24)

WIFI:

int[] num = new int[]{3,5,81,6,3,789,67,56,79,8,76,80,6,77,7};
List<Integer> list = new ArrayList<Integer>();
for (int index = 0; index < num.length; index++)
{
    list.add(num[index]);
}

移动数据:

$ adb shell svc wifi enable
$ adb shell svc wifi disable

答案 1 :(得分:14)

我看到了所有相同的问题。 DDMS没有完全杀死它。 F8也不是。也没有在模拟器内打开飞机模式。我们所有人都应该为2009年登录的人this issue加注星标。

答案 2 :(得分:6)

我找到了一个有效的解决方案。在Android 6.0和7.0模拟器上测试过,但应该在其他模拟器上运行。

网络关闭:

adb shell ifconfig eth0 down

联网:

adb shell ifconfig eth0 up

如果你得到'#34;权限被拒绝&#34;错误,以root身份重启adb守护程序:

adb root

再试一次。

答案 3 :(得分:3)

您应该只在模拟器窗口中按F8,它会根据:http://developer.android.com/guide/developing/tools/emulator.html关闭单元网络。但我测试它,它也没有工作!只有消息说没有互联网连接,但实际上有效...

答案 4 :(得分:2)

我所做的就是进入Window菜单,选择'open perspective-&gt; other'打开DDMS透视图。在DDMS透视图中,您有一个“模拟器控制”视图,您可以在其中调整延迟,漫游,您可以为其提供不同的电话和数据状态。因此,按照此过程获取模拟器视图,然后转到“数据”下拉菜单并选择“拒绝”选项。

答案 5 :(得分:2)

当我将语音和数据调整为“未注册”而非“拒绝”对我有效时,我在“模拟器控制”视图中找到了。现在我终于让AVD离线了网络,而我仍然可以发布这个答案。

答案 6 :(得分:2)

不要在Android模拟器中使用飞行模式(效果不佳),请在测试时关闭与系统的网络连接。也就是说,切换以太网连接或Wi-Fi。对我来说工作得很好。

答案 7 :(得分:0)

老问题,但我找到了解决方案:

  1. 打开命令行:CTRL + R&gt; cmd
  2. 更改为Android工具文件夹

    cd C:\Program Files\Android\android-sdk\tools

  3. 使用虚假DNS服务器运行模拟器。将2.3.3更改为您的AVD名称。 @使它开始:

    emulator.exe @2.3.3 -dns-server 127.0.0.1

  4. 查看手册以获取更多命令line options

答案 8 :(得分:0)

James Koch提到的问题的一个评论说有一个解决方法:

Comment 15 by iscy%inv...@gtempaccount.com, Jul 8, 2011
Finally found a work around for this issue:
telnet localhost 5554    // Connects to the emulator
qemu monitor             // Enter in the QEmu functionalities
info network             // List the network adapter "user.0" is usually the name
set_link user.0 down     // Shut the network down
set_link user.0 up       // Re-enable networking

BUT:

Comment 16 by leonhard...@gmail.com, Sep 6, 2011
This work around doesn't work for me on MacOS 10.7.1 and SDK rev 12 (with platform 2.2, 2.1 and 2.3.3)
... ...
qemu monitor
KO: internal error: could not detach from console !

- &GT;在Windows Vista,SDK rev 19和平台10(2.3.3)

上对我来说也是如此

但也许那对某人有用......

答案 9 :(得分:0)

最后,这种方法如何。

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进行测试。

答案 10 :(得分:0)

我发现@Marco C.的答案是可行的,但是我也发现我的AVD设置也可以很容易地做到这一点。

在侧边栏中,始终单击底部的三点图标:

enter image description here

然后,将您的蜂窝电话设置(“信号强度”和“数据状态”分别调整为“无”和“被拒绝”,如下图所示):

enter image description here