インターネット接続があるかどうか、またはデバイスが実際に Wi-Fi に接続されているかどうかを確認しようとしています。
注:インターネット接続があるかどうか、またはwifiだけが接続されているかどうかを確認しようとしているわけではありません. デバイスが実際にパケットを送受信しているかどうかを確認したい。
このコード スニペットは、モバイル データ接続があるかどうか、または Wi-Fi が有効になっているかどうかを実際に確認しますが、接続が実際に確立されているかどうかは示していません。
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 またはデータが有効になっているかどうかのみを確認します。接続が確立されているかどうかは表示されません。Wi-Fi またはデータが有効になっている場合は、常に true が返されます。
繰り返しますが、私の目標は、接続が確立されているかどうかを確認することです。
どんな助けでも本当に役に立ちます..事前に感謝します..:)
この質問は回答済みです。再度、感謝します。