此问题与how-do-you-check-the-internet-connection-in-android有关。
@William解决方案对我很有帮助,但在有限的连接上它无法正常工作。
我已连接到无线调制解调器,但此调制解调器未连接到互联网。
根据android docs这个函数应该做的所有工作,但我认为函数检查的数据只在android - >之间。调制解调器,而不是android - > webservice(互联网)。
@William代码是:
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
//notify user you are online
} else {
//notify user you are not online
}
我可以做些什么来检查互联网连接?我错过了什么?
答案 0 :(得分:1)
我认为作为替代方案,您可以向远程URL发出实际的HTTP请求,看看它是否成功。
答案 1 :(得分:0)
试试这个
public static boolean isInternetConnection(Context mContext) {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable()
&& wifi.getState() == NetworkInfo.State.CONNECTED) {
return true;
} else if (mobile.isAvailable()
&& mobile.getState() == NetworkInfo.State.CONNECTED) {
return true;
} else {
return false;
}
}
public static boolean isWifi(Context mContext) {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isAvailable()) {
return true;
} else {
return false;
}
}
public static boolean isOtherNetwork(Context mContext) {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobile.isAvailable()) {
return true;
} else {
return false;
}
}
在你的清单中添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>