android的网络是否连接状态检测及具体连接的网络类型


    许多时候我们需要开发好多和网络相关的应用,例如网上商城,新闻浏览器,社交类网站,先要检测手机网络的连接情况。Android的服务ConnectivityManager可以检查当前手机网络的状态,是否可用,是那种网络类型。
    下面方法具体接受检测不同类型网络的方法。想访问网络状态,记得在AndroidMainfest.xml里边添加权限。添加权限网络状态权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
     /**
     * 检查网络连接情况
     *
     * @return 0: None, 1: Wifi, 2: GPRS, 3: Other
     */
    protected int checkNetworkType(Context context) {
     ConnectivityManager connManager = (ConnectivityManager) context
       .getSystemService(Context.CONNECTIVITY_SERVICE);
     // 获取代表联网状态的NetWorkInfo对象
     NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
     // 获取当前的网络连接是否可用
     if (networkInfo != null || networkInfo.isAvailable()) {
      //networkInfo.isAvailable(); 返回当前的网络状态是否可用,可用时,具体判断是哪种网络
      //wifi
      State state = connManager.getNetworkInfo(
        ConnectivityManager.TYPE_WIFI).getState();
      if (State.CONNECTED == state) {
       return 1;
      }
      // GPRS
      state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
        .getState();
      if (State.CONNECTED == state) {
       return 2;
      }
     }
  return 0;
    }

posted @ 2013-03-05 14:23  追梦一生  阅读(356)  评论(0编辑  收藏  举报