检查稳定的互联网

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" />