我正在尝试检查是否有互联网连接或设备是否实际连接到 wifi。
笔记:我不是想查看是否有互联网连接,或者是否只连接了 wifi。我想检查设备是否真的在接收和发送数据包。
此代码片段实际上检查是否存在移动数据连接或是否启用了 wifi,但它没有说明连接是否实际建立。
public boolean isNetworkConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
Toast.makeText(context, "No Network", Toast.LENGTH_LONG).show();
return false;
} else
return true;
或者
boolean isConnected = ni != null && ni.isConnectedOrConnecting();
if(isConnected){
return true;
}
else{
Toast.makeText(context, "No Network", Toast.LENGTH_LONG).show();
return false;
}
}
或者
public boolean haveNetworkConnection(Context context) {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
以上所有代码片段仅检查是否启用了 wifi 或数据。它不显示连接是否已建立。如果启用了 wifi 或数据,它将始终返回 true。
同样,我的目标是检查是否建立了连接。
任何帮助都会非常有帮助..提前谢谢..:)
这个问题已经回答了。再次感谢。