Android-->分享工具类:判断网络状态,网络类型,获取网络IP(包括GSM IP)

纯粹的代码分享,没啥技术可言:

1:判断网络状态

public static boolean isNetOk(Context context) {
    ConnectivityManager cm = (ConnectivityManager)      context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (cm == null)
        return false;
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo == null) {
        return false;
    }
    if (netInfo.isConnected()) {
        return true;
    }
    return false;
}

2:获取网络类型

public static String getNetTypeName(Context context) {
    ConnectivityManager connectivityManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager != null) {
        NetworkInfo activeNetworkInfo = connectivityManager
                .getActiveNetworkInfo();
        if (activeNetworkInfo == null) {
            return "无网络";
        }
        if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
            return activeNetworkInfo.getTypeName();
        } else {
            String typeName = activeNetworkInfo.getSubtypeName();
            //Log.i("网络名称:", typeName);
            if (typeName == null || typeName.length() == 0) {
                return "未知网络";
            } else if (typeName.length() > 3) {
                return activeNetworkInfo.getSubtypeName().substring(0, 4);
            } else {
                return activeNetworkInfo.getSubtypeName().substring(0,
                        typeName.length());
            }
        }
    } else {
        return "无网络";
    }
}

3:获取手机号码(双卡手机未测试)

public static String getTelNumber(Context context) {
    TelephonyManager tm = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    return tm.getLine1Number();
}

4:获取WIFI网络的IP地址

public static String getIp(Context context) {
    WifiManager wifiManager = (WifiManager) context
            .getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    int ipAddress = wifiInfo.getIpAddress();

// 格式化IP address,例如:格式化前:1828825280,格式化后:192.168.1.109
    String ip = String.format("%d.%d.%d.%d", (ipAddress & 0xff),
            (ipAddress >> 8 & 0xff), (ipAddress >> 16 & 0xff),
            (ipAddress >> 24 & 0xff));
    return ip;
}

5:获取GSM网络的IP地址

public static String getMobileIP() {
  try {
      for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
          NetworkInterface intf = (NetworkInterface) en.nextElement();
          for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
              InetAddress inetAddress = enumIpAddr.nextElement();
              if (!inetAddress.isLoopbackAddress()) {
                  String ipaddress = inetAddress.getHostAddress().toString();
                  return ipaddress;
              }
          }
      }
  } catch (SocketException ex) {
      Log.e("getMobileIP", "Exception in Get IP Address: " + ex.toString());
  }
  return "";
}

至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.

你可能感兴趣的:(Android-->分享工具类:判断网络状态,网络类型,获取网络IP(包括GSM IP))