在 Android 模拟器上启用 WiFi

Posted

技术标签:

【中文标题】在 Android 模拟器上启用 WiFi【英文标题】:Enabling WiFi on Android Emulator 【发布时间】:2011-12-14 03:32:28 【问题描述】:

如何?我试图找到这个,但每个人都将 WiFi 与 3G 混淆了。

【问题讨论】:

android: Simulate WiFi in the emulator? 的可能重复项 【参考方案1】:

如果您使用低于 API 级别 25 的模拟器,则 Wifi 在模拟器上不可用。

使用 API 级别 25 或更高级别的 AVD 时,模拟器提供 模拟 Wi-Fi 接入点(“AndroidWifi”)和 Android 自动连接到它。

更多信息: https://developer.android.com/studio/run/emulator.html#wifi

【讨论】:

我想在模拟器上测试 VNC 服务器,而 vnc 服务器应用需要 Wifi 或 USB 才能连接到网络?那么最好的解决方案是什么? @mfq 在真实设备上运行或使用开源 VNC 应用修改为不在乎。 不要浪费你的时间@salman khalid?真的吗?从程序员的角度来看,我看到的是,如果发生这种情况,我们需要尽量减少购买实际设备的成本。如果我们只想测试我们的应用程序,我们需要多少设备? OMG....不是每个程序员都像其他人一样富有...来吧!让我们让模拟器完成工作......所以我们正在制作另一个应用......对,imz “浪费时间”也引起了我的注意。这不是很好的回答,我们根据需要在开发上浪费时间;) 它现在可以在 Android Studio 3.0 Canary 1 中使用,截至今天 05/17/2017。【参考方案2】:

显然它不会,而且我也没料到它会。然而,Ivan 提出了一个很好的可能性,它已经逃脱了 Android 人的关注。

模拟器的目的是什么?模仿,对吧?我不明白为什么出于测试目的 - 如果测试人员了解限制 - 模拟器可能不会添加 Wifi 模拟器。

它可以通过使用主机的底层互联网连接来模拟 WiFi 访问。显然测试 WPA/WEP 差异没有意义,但至少它可以通过 WiFi 切换访问。

或某种模拟器插件,其中将有一个基本 WiFi 模拟器,该模拟器将通过底层连接模拟 WiFi 访问,但随后通过配置,它可以通过提供虚假 WiFi 网络列表及其相应的虚假密码来模拟 WPA/WEP将与可配置的凭据列表进行匹配。

毕竟我们的想法是在模拟器上进行初步测试,然后再转到实际设备上。

【讨论】:

同意。如果模拟 3G,那么为什么不模拟 WiFi?即使只是为了让开发人员能够切换 WiFi 状态。 @Kilizo 这里的问题是 WiFi 堆栈非常难以模拟,需要支持桥接主机连接(或使用备用 WiFi 设备)。即使使用 VMWare 或 VirtualBox 之类的东西,让虚拟机正确使用完整的 WiFi 设备也是一件痛苦的事情。蜂窝连接很容易模拟,只需将您连接到正常的互联网,您无需担心本地网络或确保 Android 模拟器能够完全控制网络设备。【参考方案3】:

到目前为止,随着 android 模拟器的 26.1.3 版本,它终于可以在 API 25 的图像 v8 上使用。 如果模拟器是在您升级到最新的 API 25 映像之前创建的,您需要擦除数据,或者如果您愿意,只需删除并重新创建您的映像。

在某些系统映像中添加了对 Wi-Fi 的支持(目前只有 API 25 级)。一个名为“AndroidWifi”的接入点可用,并且 Android 会自动连接到它。可以通过以下方式禁用 Wi-Fi 支持 使用命令行参数 -feature -Wifi 运行模拟器。

来自https://developer.android.com/studio/releases/emulator.html#26-1-3

【讨论】:

嗨,我需要做什么才能启用 wifi 功能?因为在模拟器wifi选项的设置中会自动禁用。 我可以验证它是否适用于 Image Android 7.1.1 (Google API),API 级别 25,ABI x86。奇怪的是它不适用于较新的图像:例如API 27,ABI x86(这里我可以启用 Wi-Fi,但它会自动切换回关闭) 你是对的 @TmTron ,截至 2017 年 8 月,我从 Google 得到的回复是 You're right about API 26, it's in the works and will be available in the future. As for backporting to earlier versions that's something we would like to do although I can't make any promises as to when that will happen or how far back we will go. 对于模拟器版本 27.1.2,Wi-Fi 适用于 API 级别 25 和 26,但不适用于 27。【参考方案4】:

(在此重复my answer elsewhere。)

理论上,linux(android底层内核)有mac80211_hwsim驱动,模拟WiFi。它可用于设置多个 WiFi 设备(一个接入点和另一个 WiFi 设备等),从而组成一个 WiFi 网络。

在 linux 下测试 WiFi 程序很有用。可能,即使在user-mode linux 或其他与 linux 隔离的虚拟“盒子”下。

理论上,此驱动程序可用于在您没有真正的 WiFi 设备(或不想使用它)的 android 系统中进行测试,也可用于某种 android 模拟器。或许,可以设法在 android-x86 中使用此驱动程序,或者——用于测试——在 android-x86 中在 VirtualBox 中运行。

【讨论】:

请注意,大多数使 wifi 在 Android 应用程序中看起来像“wifi”的原因在于用户模式 ​​Android 运行时。很有可能需要改变的只是报告。尽管模拟器网络确实具有一些与 3g 提供商而不是 wifi 提供商更一致的属性;特别是一个网络地址转换器,它不接受来自主机开发机器的环回接口以外的传入连接。将平台修改为 wifi 是可行的,但唯一可以连接的本地对等点是开发机器。【参考方案5】:

如果您使用 API 24 或更早版本,则模拟器不会为 Wi-Fi 提供虚拟硬件。来自 Android 开发者网站:

使用 API 级别 25 或更高级别的 AVD 时,模拟器会提供模拟的 Wi-Fi 接入点(“AndroidWifi”),Android 会自动连接到它。

您可以通过使用命令行参数 -feature -Wifi 运行模拟器来禁用模拟器中的 Wi-Fi。

https://developer.android.com/studio/run/emulator.html#wi-fi

不支持的内容

Android 模拟器不包含虚拟 以下硬件:

蓝牙 NFC SD 卡插入/弹出 设备连接耳机 USB

Android Wear 手表模拟器不支持概览(最近 应用程序)按钮、方向键和指纹传感器。

(在https://developer.android.com/studio/run/emulator.html#about阅读更多内容)

https://developer.android.com/studio/run/emulator.html#wi-fi

【讨论】:

-1 因为屏幕截图显示设备是通过 4G 而不是通过 WiFi 连接的,没有回答、解决问题或提供任何有用的信息。 @sixones 这并不一定意味着它没有连接到 WiFi:显示 4G 是为了模拟目的(例如,如果它是 4G 与 3G,您的应用程序会做什么)并且可以通过设置。即使 WiFi 显示为 关闭未连接,我仍然可以打开 Google,因为我的计算机已连接到 WiFi。因此,尽管您可以查看/下载网站,但您无法模拟与 WiFi 的连接以进行模拟,因此,为此,您需要一个连接到 WiFi 的真实设备。 @Stardust 没错,所以除了显示您可以使用蜂窝连接之外,您的回答对所提出的问题没有任何帮助。 Android UI 非常简单,如果您连接到 Wifi,它会显示在通知栏中,它还可以根据发生的情况同时显示您的蜂窝连接。您所展示的只是您可以在连接 wifi 的主机上使用模拟器,这不是这个问题要问的。 从 API 25+ 你可以使用 wi-fi developer.android.com/studio/run/emulator.html#wi-fi 这个答案现在已经过时了【参考方案6】:

使用 API 级别 25 或更高级别的 AVD 时,模拟器会提供模拟的 Wi-Fi 接入点(“AndroidWifi”),Android 会自动连接到它。

来源:https://developer.android.com/studio/run/emulator.html#wi-fi

【讨论】:

以上是关于在 Android 模拟器上启用 WiFi的主要内容,如果未能解决你的问题,请参考以下文章

是否可以同时在iOS和Android模拟器上启用热重新加载?

如何使用 USB 声卡在 Windows 10 上启用 android 模拟器声音?

如何在 Android 模拟器中启用录音?

Android模拟器:wifi连接,没有互联网

通过wifi连接android设备的方法

Android Studio未检测到Pepper Android平板电脑