【发布时间】:2012-01-26 01:28:00
【问题描述】:
我尝试了多种方法来检查我的安卓模拟器中的互联网连接
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info= conMgr.getActiveNetworkInfo();
if(info != null || info.isConnected()) {
Log.v("NetworkInfo","Connected State");
}
else{
Log.v("NetworkInfo","Not Connected state");
Log.v("Reason",info.getReason());
}
即使我在我的系统中禁用 Internet 连接,我的代码似乎显示已连接状态 所以我猜这可能有效
if ( conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ) {
Log.v("Congr","Connection Present");
}
else if ( conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED) {
Log.v("conMgr"," No Connection");
}
但即使我断开 Internet 电缆,上述代码也会显示“连接存在”。 .请帮助找到正确的方法来做到这一点。我的清单文件中有 ACCESS_NETWORK_STATE 和 INTERNET 权限
【问题讨论】:
-
您是否在模拟器中启用/禁用了 3g 连接?按 F8 即可。
-
将模拟设备置于飞行模式时会发生什么?
-
当我将模拟器置于飞行模式时,代码可以正常工作。stackoverflow 真的很震撼,我从来没有想过用我的帖子得到回复,谢谢 Macarse 和 Jim.NetworkInfo 信息在我输入时得到空值进入飞行模式,然后像上面那样检查“信息”的空值并提醒用户。我没有在真实设备上工作过。这种检查互联网连接的方法是否正确?
-
我在模拟器和网络模拟方面的经验是它不能像您预期的那样工作,我通过反复试验发现了飞行模式的解决方法。与众多平台一样,要精通 Android 需要大量的实验。
标签: android internet-connection