デバイスで静的 IP を使用しているときにインターネット接続を検出することにほとんど問題はありません。静的IPを設定せずに接続している間、利用可能な接続を検出する機能は正しく機能しています。しかし、静的 IP を設定すると、Wifi または 3G に接続しているため、関数は true を返しますが、インターネットに接続していないため、その状況でアプリがクラッシュします。静的IPを使用しているときにその問題を解決する方法はありますか? これが私が使用しているものです:
public boolean chkNetworkStatus(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Toast.makeText(context, "No available connection!", Toast.LENGTH_LONG);
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}