检查稳定的互联网
Check the stable Internet
我的应用程序使用 getInet4AddressByName () 方法。它需要打开互联网。要检查 Wi-Fi 状态,我使用 BroadcastReceiver 接收器。但是打开 Wi-Fi 一段时间后出现稳定的互联网,该方法无法正常工作getInet4AddressByName()
returns 错误。如何跟踪稳定的 Internet 连接而不是 wi-fi 连接?谢谢
@Override
public void onReceive(Context context, Intent intent) {
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()) {
tv.setText("You are connected");
} else {
tv.setText("You are NOT connected");
}
}
};
您可以使用两种方法:
Google 推荐此代码块用于检查互联网连接。因为即使连接到 WiFi,设备也可能没有互联网连接。
1 - 用于检查连接:
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null;
}
2 - 用于检查互联网:
public boolean internetIsConnected() {
try {
String command = "ping -c 1 google.com";
return (Runtime.getRuntime().exec(command).waitFor() == 0);
} catch (Exception e) {
return false;
}
}
添加清单权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
我的应用程序使用 getInet4AddressByName () 方法。它需要打开互联网。要检查 Wi-Fi 状态,我使用 BroadcastReceiver 接收器。但是打开 Wi-Fi 一段时间后出现稳定的互联网,该方法无法正常工作getInet4AddressByName()
returns 错误。如何跟踪稳定的 Internet 连接而不是 wi-fi 连接?谢谢
@Override
public void onReceive(Context context, Intent intent) {
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()) {
tv.setText("You are connected");
} else {
tv.setText("You are NOT connected");
}
}
};
您可以使用两种方法:
Google 推荐此代码块用于检查互联网连接。因为即使连接到 WiFi,设备也可能没有互联网连接。 1 - 用于检查连接:
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null;
}
2 - 用于检查互联网:
public boolean internetIsConnected() {
try {
String command = "ping -c 1 google.com";
return (Runtime.getRuntime().exec(command).waitFor() == 0);
} catch (Exception e) {
return false;
}
}
添加清单权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />