private String getPhoneIp() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { //if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) { return inetAddress.getHostAddress().toString(); } } } } catch (Exception e) { } return ""; }
/** * 判断是否是2G网络 * * @param context * @return */ @SuppressLint("NewApi") public boolean getNetWorkType() { boolean is2G = false; NetworkInfo networkInfo = ((ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE)) .getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { Logger.d("NetworkStatus", "Network Type:" + " WIFI"); is2G = false; } else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { String subTypeName = networkInfo.getSubtypeName(); int networkType = networkInfo.getSubtype(); Logger.d("NetworkStatus", "Network SubtypeName: " + subTypeName + " Subtype: " + networkType); switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: // api<8 : replace by // 11 Logger.d("NetworkStatus", "Network Type:" + " 2G"); is2G = true; break; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: // api<9 : replace by // 14 case TelephonyManager.NETWORK_TYPE_EHRPD: // api<11 : replace by // 12 case TelephonyManager.NETWORK_TYPE_HSPAP: // api<13 : replace by // 15 // 3G Logger.d("NetworkStatus", "Network Type:" + " 3G"); is2G = false; break; case TelephonyManager.NETWORK_TYPE_LTE: // api<11 : replace by // 13 // 4G Logger.d("NetworkStatus", "Network Type:" + "4G"); is2G = false; break; default: // 中国移动 联通 电信 三种3G制式 if (subTypeName.equalsIgnoreCase("TD-SCDMA") || subTypeName.equalsIgnoreCase("WCDMA") || subTypeName.equalsIgnoreCase("CDMA2000")) { // 3G Logger.d("NetworkStatus", "Network Type:" + " 3G"); is2G = false; } else { Logger.d("NetworkStatus", "Network Type:" + " 2G"); is2G = true; } break; } } } else { Logger.d("NetworkStatus", "Network Type:" + " 2G"); } return is2G; }