我正在开发一个应用程序,我需要检查是否有互联网连接。我写的代码似乎处理所有情况但它在我的模拟器中不起作用。我的代码:
public boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected()) {
return true;
}
NetworkInfo mobileNetwork = cm
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnected()) {
return true;
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
return true;
}
return false;
}
问题是它永远不会返回false
无论互联网连接是否可用,无论是在设备还是在我的模拟器中。但如果设备连接wifi连接,它运行良好。这个片段有什么问题?
答案 0 :(得分:-1)
尝试这种方法。
private boolean IsNetworkAvailable() {
ConnectivityManager mConnectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mActiveNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
return mActiveNetworkInfo != null && mActiveNetworkInfo.isConnected();
}
您还需要:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />