`
ldl8818
  • 浏览: 125654 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Android监听网络变化

 
阅读更多

注册方式:

1.

<receiver
            android:name="包名.ConnectionChangeReceiver"
            android:label="NetworkConnection" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
</receiver>

 2.

	/*
	 * 手动注册网络状态变化,或在清单文件配置。
	 */
	private void registerNetStateReceiver() {
		Log.i("--bxm register netstate receiver...");
		mConnectivityReceiver = new ConnectionChangeReceiver();
		IntentFilter filter = new IntentFilter();
		filter.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION);
		registerReceiver(mConnectivityReceiver, filter);
	}

 其中 ConnectionChangeReceiver类为: 

public class ConnectionChangeReceiver extends BroadcastReceiver {

	private final static NetConnectionStateMgr dataStateMgr = NetConnectionStateMgr.getInstance();

	@Override
	public void onReceive(Context context, Intent intent) {
		Log.i("--ConnectivityReceiver.onReceive()...");
		String action = intent.getAction();
		Log.i("--action=" + action);

		ConnectivityManager connectivityManager = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);

		NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

		if (networkInfo != null) {
			Log.i("--Network Type  = " + networkInfo.getTypeName());
			Log.i("--Network State = " + networkInfo.getState());
			if (networkInfo.isConnected()) {
				Log.i("--bxm Network connected");
				dataStateMgr.setDataState(NetConnectionStateMgr.DATA_CONNECTIONED);
			}
		} else {
			Log.e("--bxm Network unavailable");
			dataStateMgr.setDataState(NetConnectionStateMgr.DATA_CONNECTION_UNAVAILABLE);
		}

		dataStateMgr.notifyDataSetChanged();
	}
}

 上面的NetConnectionStateMgr是自己实现的观察者类,方便用而已。 

 

注意权限配置:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

分享到:
评论

相关推荐

    Android 实时监测(监听)网络连接状态变化

    android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...

    Android-Android监听网络变化判断网络连接类型网络制式等工具类

    本文将详细讲解如何在Android系统中监听网络变化,判断网络连接类型以及网络制式,并介绍一个名为"NetUtil"的工具类。 一、监听网络变化 在Android中,我们可以使用BroadcastReceiver来监听网络状态的变化。首先,...

    android 广播监听网络变化

    本文将详细介绍如何在Android中创建一个广播监听网络变化的机制。 首先,我们需要了解Android中的网络状态类型。Android提供了两种主要的网络连接类型:移动数据(Mobile Data)和Wi-Fi。此外,还有网络是否可用、...

    Android实时监听网络变化

    本示例"Android实时监听网络变化"专注于如何实现这个功能,通过一个名为`NetStateBroadcastReceiver`的广播接收器来实现。 首先,我们需要创建一个继承自`BroadcastReceiver`的类,例如`NetStateBroadcastReceiver`...

    Android监听网络状态

    10. **NetworkCallback**:在Android API 24及以上版本,可以使用`ConnectivityManager.NetworkCallback`替代`BroadcastReceiver`来监听网络变化,这种方式更为高效且易于管理。 综上所述,Android监听网络状态涉及...

    Android利用广播BroadCast监听网络的变化

    7. **权限申请**: 监听网络变化需要在AndroidManifest.xml中添加权限`&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;`,否则应用无法获取网络状态信息。 8. **测试与调试**: 为了...

    android实时监听网络变化

    本篇将详细介绍如何利用Android的BroadcastReceiver(广播接收器)来实现这一功能,主要关注与“android 广播 监听 网络变化 wifi”相关的知识点。 首先,我们要理解BroadcastReceiver的工作原理。...

    Android中的webview监听每次URL变化实例

    本文档将详细讲解如何在Android的WebView中监听URL的变化以及如何监听页面加载的完成情况。 首先,要监听WebView中URL的变化,可以通过设置自定义的WebViewClient,并重写onLoadResource方法。当WebView开始加载新...

    Android通过使用广播监听网络状态的改变

    在Android系统中,开发者可以利用系统的广播机制来监听网络状态的变化。这是一项非常重要的功能,因为应用程序往往需要根据网络连接的状态来决定是否加载在线数据或者执行网络相关的操作。本篇文章将详细探讨如何在...

    【Android】Android 监听网络状态+源代码

    以上就是Android监听网络状态的基本方法和实现过程。通过这些技术,开发者可以确保应用在各种网络环境下都能正常运行。在实际项目中,还需要考虑网络类型(如WiFi、移动数据)以及连接质量等因素,以便提供更优质的...

    Android中动态注册广播监听者,监听网络变化

    总的来说,动态注册广播监听网络变化是一种灵活且实用的方法,可以帮助开发者在应用运行时实时监控网络状态,从而根据网络状况做出相应的业务处理。通过以上步骤,你可以实现Android应用对网络状态变化的动态监听...

    Android 实时监测网络连接状态变化

    在Android开发中,实时监测网络连接状态变化是一项重要的任务,这涉及到用户应用的网络依赖性和用户体验。本篇文章将深入探讨如何实现这一功能,包括监听网络连接的状态,判断当前的网络类型,以及处理网络状态变化...

    Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理

    在Android移动应用开发中,了解如何检测网络状态以及利用BroadcastReceiver来监听网络变化是至关重要的。BroadcastReceiver是一种组件,它可以监听系统或应用广播事件,并在接收到特定广播时执行相应的操作。以下是...

    android监听网络状态Demo

    使用BroadcastReceiver监听网络状态 当网络连接或者断开会弹出Toast提示,同时System.out打印出连接信息 NetUtils中有四个方法可以检测网络是否连接、wifi是否连接、移动网络是否连接、连接类型

    Android高级应用源码-android监听网络状态Demo.rar

    这份"Android高级应用源码-android监听网络状态Demo"应该包含了创建、注册BroadcastReceiver以及处理网络状态变化的完整过程。通过学习和理解这段代码,开发者可以更好地在自己的应用中实现网络状态的实时监控。

    android全局监听网络

    为了全局监听网络变化,我们需要在AndroidManifest.xml中静态注册BroadcastReceiver: ```xml &lt;receiver android:name=".NetworkChangeReceiver"&gt; &lt;action android:name="android.net.conn.CONNECTIVITY_CHANGE...

    Android-NetMonitor使用广播监听网络变化更新UI

    `Android-NetMonitor`是一个示例项目,它展示了如何使用广播接收器(BroadcastReceiver)来监听网络连接的状态变化,并实时更新用户界面(UI)。这个项目的源代码可以在`NetMonitor-master`这个压缩包中找到。 1. *...

    android 网络速率实时显示

    对于更精确的实时流量监控,我们需要监听系统广播`ACTION_DATA_CONNECTION_STATE`,在接收器中处理网络状态变化,或者利用`TrafficStats`类获取更细粒度的数据。 其次,**服务(Service)**在后台持续运行,负责...

Global site tag (gtag.js) - Google Analytics