Android 安卓互联网连接
我使用以下代码查看用户是否有互联网连接(WIFI、3G或Edge)。 为什么有些用户在没有互联网连接的情况下却没有互联网连接Android 安卓互联网连接,android,connection,Android,Connection,我使用以下代码查看用户是否有互联网连接(WIFI、3G或Edge)。 为什么有些用户在没有互联网连接的情况下却没有互联网连接 try{ ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); State wifi = connec.getNetworkInfo(1).getState(); if (connec.getNe
try{
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = connec.getNetworkInfo(1).getState();
if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING ) {
///HAVE CONNECTION CODE////
}else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) {
///NO CONNECTION CODE///
}
} catch (Throwable t){
///NO CONNECTION CODE///
}
我猜
connec.getNetworkInfo(0)
和connec.getNetworkInfo(1)
并不总是对wifi/3g网络接口有效。尝试检查接口的“TypeName”。我用这个代码
public boolean HaveNetworkConnection() {
boolean HaveConnectedWifi = false;
boolean HaveConnectedMobile = false;
ConnectivityManager connManager = (ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = connManager.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
Log.d("HaveNetworkConnection()", ni.toString());
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
HaveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
HaveConnectedMobile = true;
}
return HaveConnectedWifi || HaveConnectedMobile;
}