我正在尝试使用以下方法检查 Android 上的互联网连接。我有 Wi-Fi 连接。
private boolean checkInternetConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// Test for connection
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
return true;
}
else {
// No conection
return false;
}
}
我断开电脑与互联网的连接,然后尝试运行上述方法。但它总是返回 true!?为什么?
要禁用 Internet 连接,请转到 Eclipse 并执行以下操作
menu Window -> Show view -> Other -> Android -> Devices
现在选择您正在运行的模拟器,然后再次转到:
menu Window -> Show View -> Other -> Android -> Emulator Control
现在... 将数据设置为从主页取消注册。
在设备或模拟器中,转到:
Setting -> Wireless & networks -> Airplane Mode -> OK
您可以在任何 Android 模拟器中按 F8 禁用互联网连接。它是一个切换按钮,因此如果没有互联网连接,它将启动互联网连接,如果已经有互联网连接,它将断开连接。
尝试以下命令
WIFI:
$ adb shell svc wifi enable
$ adb shell svc wifi disable
MOBILE DATA:
$ adb shell svc data enable
$ adb shell svc data disable
方法有很多。我在这里解释两种方法。
飞行模式关闭
它将断开您的模拟器与互联网的连接。如果您想再次连接,只需再次按住电源按钮并选择:
飞行模式开启
您的模拟器的互联网连接将开始工作!
要检查真实设备(以及模拟器),请访问:
设置 > 无线和网络 > 移动网络 > 启用数据
取消选中它即可工作。
您实际上可以在模拟器中禁用互联网连接就像在真正的手机中一样。
我刚刚在加载到模拟器中的 android 4.4 图像中成功尝试了它。
最近的模拟器版本提供了一种更简单的方法,从 ADT 视图来看:
Window -> Show view -> Other... -> Android -> Emulator Control
只需更改 “电话状态” 中的 “数据” 值,然后再次测试您的应用程序。
这个问题的其他答案都不适合我,唯一有用的是
adb shell
-> su
-> ifconfig wlan0 down
您可以使用
ifconfig wlan0 up
再次将其恢复。 (即使在执行ifconfig wlan0 up
之后,我也必须重新启动设备。)
在尝试此操作之前,请务必确保移动数据已禁用(或设备处于飞行模式)。
非常感谢noamtm的回答的提示!
在 Android 模拟器中禁用互联网的步骤:
现在您的模拟器将不接受互联网连接。
注意:在飞行模式之后,您无法在模拟器中安装和运行您的应用程序,因此在将其置于飞行模式之前,请在模拟器中运行您的应用程序。
要再次更改为正常,请长按模拟器并选择相同的选项。
telnet localhost 5554
(或Android模拟器编号)
支持互联网:
gsm data home
无法上网:
gsm data unregistered
您可以使用我的图书馆,可在 http://www.cristianmarquez.com.ar。
我的应用程序是使用 React Native 构建的,对我有用的是在调试模式下运行设备并从限制下拉列表中禁用网络连接。这只会禁用我的应用程序正在进行的任何 XHR 调用的互联网。
我为此使用了 React Native Debugger 独立应用程序,并按照以下步骤操作:
react-native start
并按字母 d
Debug