在开发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通过使用广播监听网络状态的改变,更多请看我的博客:http://blog.csdn.net/xiayiye5/article/details/79397088
android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...
【Android】Android 监听网络状态+源代码
Android即时网络监听库,只需几行代码就可得到当前网络状态为wifi还是GPRS或是网络连接还是网络断开,监听犹如EventBus那般优雅。
Android高级应用源码-android监听网络状态Demo.zip
使用BroadcastReceiver监听网络状态 当网络连接或者断开会弹出Toast提示,同时System.out打印出连接信息 NetUtils中有四个方法可以检测网络是否连接、wifi是否连接、移动网络是否连接、连接类型
Android高级应用源码-android监听网络状态Demo.rar
Android 网络状态监听 QQ
Android监听网络状态,同时在WiFi情况下判断WiFi是否可用
通过注册BroadcastReceiver实时监听网络状态,实时更新当前Activity
Android 广播监听网络状态 我们在做多线程下载的时候,或者是在加载h5界面的时候,常常会遇到网络状态不好或者断网的时候,在这或者当我们的应用程序启动没有退出的时候,我们就需要对网络状态监听加以判断。 这...
实现android不同系统版本网络变动监听,2G和3G网络已经处理了显示无网络,主要监听无网络,4G,WIFI,以太网
android监听网络连接状态,使用BroadCastReciver 博客地址: http://blog.csdn.net/pangzaifei/article/details/19498577
Android利用广播BroadCast监听网络的变化。该Demo是网络资源整理,可以正常运行。你可以看到内部接口的使用,广播机制的使用,网络连接状态的检查等。
在无网或网速差的状态下,没必要去连接服务器。 你可以使用 ConnectivityManager 来判断是否连到网络,以及网络类型。 判断是否有网络连接 下面的代码用ConnectivityManager查询是活动网络连接判断是否有Internet...
广播接受者接收到相应的wifi以及网络状态的广播,通过内部的判断得到一些信息,并调用抽象类的方法,用户便可根据相应方法进行操作。Unregister()是取消注册广播接受者。 还通过取得WifiManager对象实现的对wifi打开...
Android 网络连接状态变更 Android 网络连接状态变更 Android 网络连接状态变更
主要为大家详细介绍了Android使用BroadcastReceiver监听网络连接状态的改变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
广播接受者接收到相应的wifi以及网络状态的广播,通过内部的判断得到一些信息,并调用抽象类的方法,用户便可根据相应方法进行操作。Unregister()是取消注册广播接受者。 还通过取得WifiManager对象实现的对wifi打开...