Android网络类型判断(2g、3g、wifi) .
2013-12-19 14:42
621 查看
判断网络类型是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或EDGE,电信的2G为CDMA,电信
的3G为EVDO
android获取手机的ip地址
IPv4:
public static String getPhoneIP() {
try {
String ipv4;
ArrayList<NetworkInterface> mylist = Collections
.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface ni : mylist) {
ArrayList<InetAddress> ialist = Collections.list(ni
.getInetAddresses());
for (InetAddress address : ialist) {
if (!address.isLoopbackAddress()
&& InetAddressUtils.isIPv4Address(ipv4 = address
.getHostAddress())) {
return ipv4;
}
}
}
} catch (SocketException ex) {
return null;
}
return null;
}
via:http://www.cnblogs.com/lee0oo0/archive/2013/05/20/3089906.html
【原文:http://blog.csdn.net/androideveloper/article/details/12678913】
的网络进行不同的处理,现将判断方法整理给大家,以供参考
说明:下面用到的数据移动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或EDGE,电信的2G为CDMA,电信
的3G为EVDO
android获取手机的ip地址
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 ""; }
IPv4:
public static String getPhoneIP() {
try {
String ipv4;
ArrayList<NetworkInterface> mylist = Collections
.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface ni : mylist) {
ArrayList<InetAddress> ialist = Collections.list(ni
.getInetAddresses());
for (InetAddress address : ialist) {
if (!address.isLoopbackAddress()
&& InetAddressUtils.isIPv4Address(ipv4 = address
.getHostAddress())) {
return ipv4;
}
}
}
} catch (SocketException ex) {
return null;
}
return null;
}
via:http://www.cnblogs.com/lee0oo0/archive/2013/05/20/3089906.html
【原文:http://blog.csdn.net/androideveloper/article/details/12678913】
相关文章推荐
- Android网络类型判断(2g、3g、wifi)
- Android网络类型判断(2g、3g、wifi)
- Android网络类型判断(2g、3g、wifi)
- android判断正在使用的网络类型 0.不知道网络类型;1、2G;2、3G;3、4g;4、wifi
- Android 判断网络类型 wifi,2G,3G,4G
- Android网络类型判断(2g、3g、wifi)
- Android判断网络类型的方法(2g,3g还是wifi)
- Android网络类型判断(2g、3g、wifi)
- Android网络类型判断(2g、3g、wifi)
- Android网络类型判断(2g、3g、wifi)
- android如何判断当前网络类型(联网,2g,3g,wifi等)
- android如何判断当前网络类型(联网,2g,3g,wifi等)
- Android 判断网络是否可用、网络类型WIFI/2G/3G/4G及获取IP
- Android 判断网络是否可用、网络类型WIFI/2G/3G/4G及获取IP
- Android之判断手机连接的网络类型是WIFI还是2G/3G/4G(转载)
- Android网络类型判断(2g、3g、wifi)(待续)
- Android网络类型判断(2g、3g、wifi)
- Android网络类型判断(2g、3g、wifi)
- Android判断当前网络类型2G/3G/4G/WIFI
- iOS平台判断2G,3G,wifi网络类型