php 判断3g,Android网络类型判断(2g、3g、wifi)

判断网络类型是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地址

private String getPhoneIp() {

try {

for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {

NetworkInterface intf = en.nextElement();

for (Enumeration 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 "";

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值