`

Android中监听网络状态

 
阅读更多

 

在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。

ConnectivityManager有四个主要任务:

1、监听手机网络状态(包括GPRS,WIFI, UMTS等)

2、手机状态发生改变时,发送广播

3、当一个网络连接失败时进行故障切换

4、为应用程序提供可以获取可用网络的高精度和粗糙的状态

当我们要在程序中监听网络状态时,只要一下几个步骤即可:

1、定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开来改变空间的外观

2、在适当的地方注册Receiver,可以在程序中注册,在onCreate中调用如下函数即可:

 

3、在适当时取消注册Receiver,可以在程序中取消,在onDestroye中调用如下函数即可:

Ps:网上还有很多关于使用TelephonyManager 的方法的,方法如下(但是我试了好几次都有问题,如每次第一次进入一个Activity时会自动收到网络断开的信号,每次网络状态改变时收到多次回调且状态不正确。不知道有什么要注意的地方,求指点!)

 

 

final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);  
mTelephonyMgr.listen(new PhoneStateListener(){
@Override
public void onDataConnectionStateChanged(int state) {
switch(state){
case TelephonyManager.DATA_DISCONNECTED://网络断开
break;
case TelephonyManager.DATA_CONNECTING://网络正在连接
break;
case TelephonyManager.DATA_CONNECTED://网络连接上
break;
}
}
}, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
 

 

分享到:
评论

相关推荐

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

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

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

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

    Android监听网络状态

    以下是一些关于“Android监听网络状态”的关键知识点: 1. **网络连接状态获取**:Android提供了`ConnectivityManager`类来获取和管理设备的网络连接状态。通过调用`getActiveNetworkInfo()`或`getAllNetworkInfo()...

    android 广播监听网络变化

    在Android开发中,为了实现应用程序对网络状态的实时监控,我们常常会用到广播接收器(BroadcastReceiver)。这个技术允许我们的应用在不运行时也能接收到系统或自定义的广播事件,比如网络连接状态的改变。本文将...

    Android-NetworkState一个轻量级的网络状态监听库方便实用

    3. 注册和取消注册监听:在需要监听网络状态的地方调用NetworkState.registerListener()方法注册监听器,在不再需要监听时调用unregisterListener()进行取消注册。 与EventBus类似,"Android-NetworkState"也采用了...

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

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

    android全局监听网络

    在Android开发中,全局监听网络状态是一项常见的需求,它可以帮助开发者实时掌握应用的网络环境,以便在无网络或网络不稳定时做出相应的处理,比如显示错误提示、暂停数据加载等。本示例将介绍如何在Android中实现...

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

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

    Android实时监听网络变化

    在Android开发中,实时监听网络状态的变化是一项重要的功能,它能帮助应用在用户网络环境切换时做出相应的反应,比如切换到离线模式、暂停或恢复网络请求等。本示例"Android实时监听网络变化"专注于如何实现这个功能...

    android监听网络状态Demo

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

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

    本示例"Android高级应用源码-android监听网络状态Demo"就是针对这一需求提供的一份实践代码。 首先,我们需要了解Android中监测网络状态的基本方法。Android系统提供了`ConnectivityManager`服务,它是管理设备网络...

    Android实现信号强度监听的方法

    首先,我们需要了解Android中的`TelephonyManager`类,它是系统提供的一个接口,用于获取手机通话状态和网络信息。通过这个类,我们可以获取到手机的信号强度数据。以下是如何初始化`TelephonyManager`: ```java ...

    android实时监听网络变化

    在Android开发中,实时监听网络状态的变化是一项重要的功能,它能帮助应用在用户网络环境切换时做出相应的反应,比如切换到离线模式或者提示用户网络不可用。本篇将详细介绍如何利用Android的BroadcastReceiver...

    Android 网络状态监听 QQ

    接下来,我们需要监听网络状态的变化。Android提供了`BroadcastReceiver`来接收广播事件,其中包括网络状态改变的广播。创建一个继承自`BroadcastReceiver`的类,并重写`onReceive()`方法,这里可以检查接收到的广播...

    Android网络状态变动监听

    在Android开发中,网络状态的实时监控是一项重要的任务,它能帮助我们确保应用在各种网络环境下都能正常工作。本文将详细讲解如何实现Android不同系统版本的网络状态变动监听,包括2G、3G网络的无网络状态处理以及4G...

    BroadcastReceiver监听网络状态

    在本场景中,"BroadcastReceiver监听网络状态" 的核心目标是利用BroadcastReceiver来实时监控设备的网络连接状况,并根据网络状态的变化更新当前的Activity。这在现代移动应用中非常常见,因为用户期望应用能够无缝...

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

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

    Android程序研发源码Android中监听电话状态.zip

    `TelephonyManager`是Android提供的系统服务,可以获取手机的SIM卡信息、网络状态、电话状态等。而`PhoneStateListener`则是一个监听电话状态变化的接口,通过注册该监听器,开发者可以在电话状态发生变化时接收到...

    监听Android手机网络变更

    在Android开发中,监听网络状态的变化是一项常见的需求,比如应用需要根据网络的可用性来决定是否加载远程数据或者执行特定操作。本篇文章将详细讲解如何在Android应用中实现对网络连接状态的监听。 首先,我们需要...

    Android 网络状态监听

    在Android中,我们可以创建一个`Service`,并在其中注册`BroadcastReceiver`来监听网络状态的变化。 ```java public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive...

Global site tag (gtag.js) - Google Analytics