网络连接状态的监听和判断

网络连接状态的监听和判断(android,wifi,Gprs)

1.获取网络连接状态

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

        NetworkInfo net=connectivityManager.getActiveNetworkInfo();

 if(net==null){

           Log.i("test", "无网络连接");

       }else{

           Log.i("test", "网络连接类型为"+net.getTypeName());

       }

2.连接状态监听:

1) 编写BroadcastReceiver

public class NetworkReceiver extends BroadcastReceiver

{   @Override

    public void onReceive(Context context, Intent intent)

    {

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

        NetworkInfo net=connectivityManager.getActiveNetworkInfo();

       if(net==null){

           Log.i("test", "net==null");

       }else{

           Log.i("test", "net="+net.getTypeName());

       }

    }

}

2).配置xml

<receiver android:name=".NetworkReceiver">

<intent-filter>

<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

</intent-filter>

</receiver>

3).加入权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

3.无连接时引导用户跳转到设置页面

startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));

原文:

http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html


判断网络类型是wifi,还是3G,还是2G网络,对不同
的网络进行不同的处理,现将判断方法整理给大家,以供参考
 
说明:下面用到的数据移动2G,联通2G,联通3G,wifi我都已经测试过,暂时手上
没有电信的卡,所以没有验证,有电信手机的同事,可以验证一下,验证后将结果
发送给大家。
 
 ConnectivityManager connectMgr = (ConnectivityManager) this
        .getSystemService(Context.CONNECTIVITY_SERVICE);
 
 NetworkInfo info = connectMgr.getActiveNetworkInfo();
 
一、判断网络是否是wifi,在判断之前一定要进行的非空判断,如果没有任何网络
连接info ==null
info.getType() == ConnectivityManager.TYPE_WIFI
 
二、判断是否是手机网络
info !=null && info.getType() ==  ConnectivityManager.TYPE_MOBILE
 
手机网络进行详细区分:
 
info.getSubtype() 这里使用 getSubtype(),不是 getType(),getType()返回的
是0,或者1,是区分是手机网络还是wifi
 
info.getSubtype()取值列表如下:
 
         * NETWORK_TYPE_CDMA 网络类型为CDMA
         * NETWORK_TYPE_EDGE 网络类型为EDGE
         * NETWORK_TYPE_EVDO_0 网络类型为EVDO0
         * NETWORK_TYPE_EVDO_A 网络类型为EVDOA
         * NETWORK_TYPE_GPRS 网络类型为GPRS
         * NETWORK_TYPE_HSDPA 网络类型为HSDPA
         * NETWORK_TYPE_HSPA 网络类型为HSPA
         * NETWORK_TYPE_HSUPA 网络类型为HSUPA
         * NETWORK_TYPE_UMTS 网络类型为UMTS
 
联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA,电信
的3G为EVDO
原文:
http://blog.csdn.net/xxxsz/article/details/8199031

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值