31

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

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

我尝试了以下方法:

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

  • 在我的电脑上禁用网络连接:这显然有效,但并不令人满意,因为我在测试我的应用程序时需要互联网

4

11 回答 11

33

无线上网:

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

移动数据:

$ adb shell svc data enable
$ adb shell svc data disable
于 2016-01-26T14:40:27.480 回答
14

我看到所有相同的问题。DDMS 并没有完全杀死它。F8也不行。在模拟器内打开飞行模式也没有。我们都应该在 2009 年登录的这个问题上加注星标。

于 2011-01-18T21:59:55.380 回答
7

我找到了一个可行的解决方案。在 Android 6.0 和 7.0 模拟器上测试,但应该适用于其他模拟器。

网络中断:

adb shell ifconfig eth0 down

联网:

adb shell ifconfig eth0 up

如果您收到“权限被拒绝”错误,请以 root 身份重新启动 adb 守护程序:

adb root

然后再试一次。

于 2016-09-27T12:53:56.307 回答
3

您应该在模拟器窗口中按 F8,它会根据以下内容关闭手机网络:http: //developer.android.com/guide/developing/tools/emulator.html。但是我测试了它,它也不起作用!只有消息说没有互联网连接,但它确实有效......

于 2010-10-24T16:45:03.023 回答
2

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.

于 2012-03-23T14:04:42.893 回答
2

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

于 2011-01-23T13:42:01.043 回答
2

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

于 2010-10-24T16:00:40.537 回答
0

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) 上我也一样

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

于 2012-07-31T10:06:59.203 回答
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 进行测试。

于 2013-01-04T14:46:53.737 回答
0

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

  1. 打开命令行:CTRL+R >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

查看手册以获取更多命令行选项

于 2012-02-01T15:54:20.383 回答
0

我发现@Marco C. 的答案很有效,但我也发现我的 AVD 设置也很容易做到这一点。

在边栏中,一直单击底部的三点图标:

在此处输入图像描述

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

在此处输入图像描述

于 2019-03-08T18:24:33.037 回答