Android 判断网络是否真正连通
时间: 2023-09-23 13:11:15 浏览: 116
要判断Android设备是否真正连通网络,可以通过以下步骤:
1. 添加网络状态监听器,监听网络连接状态的变化。
```java
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
NetworkRequest request = builder.build();
connectivityManager.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
// 网络已连接
}
@Override
public void onLost(Network network) {
// 网络已断开
}
});
```
2. 判断当前网络是否可用。
```java
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
// 网络可用
} else {
// 网络不可用
}
```
3. 使用ping命令测试网络连接。
```java
public static boolean isNetworkConnected() {
try {
String command = "/system/bin/ping -c 1 8.8.8.8";
return Runtime.getRuntime().exec(command).waitFor() == 0;
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
return false;
}
```
以上是在Android平台上判断网络是否真正连通的方法,希望能对你有所帮助。
阅读全文