在Android中,判断网络连接是否可用以及监控网络状态,你可以通过`ConnectivityManager`类来实现。下面是一个简要的代码示例,展示如何进行这些操作:
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkUtil {
/**
* 检查网络连接是否可用
* @param context 上下文
* @return 如果网络连接可用,则返回true;否则返回false
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}
return false;
}
/**
* 注意:直接监控网络状态通常通过注册广播接收器来完成,但在此不提供完整的广播接收器代码。
* 你需要在你的应用中注册一个BroadcastReceiver来监听CONNECTIVITY_ACTION,
* 并在onReceive方法中检查网络状态。
*
* 注册BroadcastReceiver的示例(注意,这需要在你的Activity或其他Component中完成):
* IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
* registerReceiver(yourBroadcastReceiver, filter);
*
* 然后实现BroadcastReceiver的onReceive方法,使用类似isNetworkAvailable的逻辑来检查网络状态。
*/
// 这里不直接提供BroadcastReceiver的实现,因为它需要根据你的具体需求来定制。
}
请注意,为了使用`ConnectivityManager`,你需要在你的AndroidManifest.xml中添加适当的权限,通常是`ACCESS_NETWORK_STATE`。如果你打算在Android 6.0(API级别23)及以上版本中使用动态权限请求,请确保你的应用已请求并获得了这个权限。
另外,我提到了注册`BroadcastReceiver`来监听网络状态的变化,但我没有在这里提供完整的代码,因为这通常涉及到在你的应用架构中更广泛的集成。你需要在适当的组件(如Activity或Service)中注册这个接收器,并在`onReceive`方法中处理网络状态的变化。