当前位置:操作系统 > 安卓/Android >>

android获取手机的网络状态

 

   很多朋友在android开发中,都会遇到手机网络类型判断,因为就目前的android平台手机来说:可能会存在4中状态

      1.无网络(这种状态可能是因为手机停机,网络没有开启,信号不好等原因)

      2.使用WIFI上网

      3.CMWAP(中国移动代理)

      4.CMNET上网

 这四种状态,如果没有网络,肯定是无法请求Internet了,如果是wap就需要为手机添加中国移动代理,关于为手机添加中国移动的代理,请到

http://www.zzzyk.com/kf/201111/112100.html 这里写有关于添加中国移动代理的例子!

下面是网络判断的方法:

view plain

/**

     * @author sky

     * Email vipa1888@163.com

     * QQ:840950105

     * 获取当前的网络状态  -1:没有网络  1:WIFI网络2:wap网络3:net网络

     * @param context

     * @return

     */ 

    public static int getAPNType(Context context){ 

        int netType = -1;  

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

        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 

         

        if(networkInfo==null){ 

            return netType; 

        } 

        int nType = networkInfo.getType(); 

        if(nType==ConnectivityManager.TYPE_MOBILE){ 

            Log.e("networkInfo.getExtraInfo()", "networkInfo.getExtraInfo() is "+networkInfo.getExtraInfo()); 

            if(networkInfo.getExtraInfo().toLowerCase().equals("cmnet")){ 

                netType = CMNET; 

            } 

            else{ 

                netType = CMWAP; 

            } 

        } 

        else if(nType==ConnectivityManager.TYPE_WIFI){ 

            netType = WIFI; 

        } 

        return netType; 

    } 

 

因为获取的是服务对象,所以这个网络状态都是时时刷新的,所以我们只需要得到网络状态就可以了!

学习在于积累,希望和大家一起分享

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,