gpt4 book ai didi

android - 在没有 3G 连接的情况下创建 android AVD

转载 作者:搜寻专家 更新时间:2023-11-01 08:05:13 24 4
gpt4 key购买 nike

我的应用程序中的一个功能通过互联网发送数据。在尝试发送数据之前,我检查是否存在连接:

private boolean isConnected() {
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo.State val1 = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
NetworkInfo.State val2 = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
return NetworkInfo.State.CONNECTED.equals(val1) || NetworkInfo.State.CONNECTED.equals(val2);
}

这在模拟器和我测试过的几个真实设备上运行得非常好。然后我收到来自客户端的错误报告,经调查证明是 TYPE_MOBILEgetState 行上的 NullPointerException

显然,connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) 在没有 3G 的设备(仅支持 WiFi 的平板电脑)上返回了 null。尽管我确实在 Nexus 7 模拟器上进行了测试,但我没有遇到此错误。

因此,我感兴趣的是创建一个明确没有 3G 的 AVD(即用于仅支持 WiFi 的设备的 AVD),以便我可以调查/测试此类场景。我在模拟器选项中没有找到任何东西,但也许我只是找错了地方。这可能吗?

最佳答案

您应该能够更改 AVD 的硬件设置以移除调制解调器。该选项标记为 hw.gsmModem,但我相信它会禁用所有“蜂窝数据”连接,而不仅仅是 GSM。

如果您想在不使用 AVD 管理器的情况下更改硬件选项,请编辑 avd 文件夹中的 config.ini 文件。默认情况下,该文件夹位于:

  • Linux/Mac: ~/.android/avd/yourAvdName

  • Windows Vista/7/(8?): C:\Users\.android\yourAvdName

  • Windows XP: C:\Documents and Settings\.android\yourAvdName

只需添加一行内容:

hw.gsmModem=no

参见 herehere了解更多详情。


但是,您可以通过在模拟器中按 F8 关闭 3G 来测试它。我不知道这是否会模拟您正在寻找的 null,但值得一试。

参见 here获取更多快捷方式。

关于android - 在没有 3G 连接的情况下创建 android AVD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15269821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com