您的位置:首页 > 理论基础 > 计算机网络

Android 利用PhoneStatelistener 判断网络是否连接

2013-05-27 14:05 344 查看
目前Android操作系统的手机大部分支持WIFI,GSM,3G网络通信,但是每次链接到网络时只能选择一种链接方式,

比如运营商定制的,还必须要求特定的网络环境(CMWAP,CTWAP等)如果要切换网络还需要先关闭现有的网络,

然后再启动新的网络,这个转换过程还需要一定的时间,

可能程序这时还需要知道心的网络是否链接成功后自动登录到新的网络服务器中,

那怎么知道几时链接成功呢?这个时间需要多久呢?

也许用一个线程去监听网络状态是否链接成功;

我们可以用另外一种方法,PhoneStateListener

没错,你没看错,就是用PhoneStateListener。

很多应用PhoneStateListener都是监听来电去电,PhoneStateListener还可以监听网络断开、

正在连接和连接成功。

代码如下:

----------------------------------------------------------------------------

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);

我们只要重载onDataConnectionStateChanged方法,根据state判断做相应的处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: