在 Android 中,您可以使用以下几种方法来判断网络连接状态:
1. 使用 ConnectivityManager 类:
```java
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
```
2. 使用 NetworkInfo 类:
```java
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isWifiConnected = networkInfo != null && networkInfo.isConnected();
networkInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isMobileConnected = networkInfo != null && networkInfo.isConnected();
```
3. 使用 Internet 连通性检查:
```java
public static boolean isInternetAvailable(Context context) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(3000);
urlConnection.connect();
return urlConnection.getResponseCode() == 200;
} catch (Exception e) {
return false;
}
}
```
4. 使用 Ping 检查:
```java
public static boolean isHostAvailable(String hostname) {
try {
Process process = Runtime.getRuntime().exec("/system/bin/ping -c 1 " + hostname);
int exitValue = process.waitFor();
return (exitValue == 0);
} catch (IOException | InterruptedException e) {
return false;
}
}
```
以上是一些常见的判断网络连接状态的方法,可以根据具体需求选择合适的方式来实现。需要注意的是,在使用这些方法时需要考虑权限的申请和设备上的网络状态,以确保获取的信息是准确的。