处理 Android 中的互联网连接变化
问题集中在需要一个可以监视互联网连接变化的广播接收器,因为现有代码仅检测连接变化。
为了解决这个问题,这里有一个替代方法:
public class NetworkUtil {
public static final int TYPE_WIFI = 1;
public static final int TYPE_MOBILE = 2;
public static final int TYPE_NOT_CONNECTED = 0;
public static int getConnectivityStatus(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) {
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
return TYPE_WIFI;
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
return TYPE_MOBILE;
}
return TYPE_NOT_CONNECTED;
}
}
此方法确定设备是否连接到 WiFi 或移动数据。
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
int status = NetworkUtil.getConnectivityStatus(context);
if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) {
if (status == NetworkUtil.TYPE_NOT_CONNECTED) {
// Handle loss of internet connectivity
} else {
// Handle restoration of internet connectivity
}
}
}
}
此 BroadcastReceiver 监视连接状态变化并根据当前状态触发操作。请记住在 AndroidManifest.xml 中包含适当的权限并注册接收器:
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3