Android判断网络类型的方法(2g,3g还是wifi)
作者:lee0oo0 时间:2023-09-15 10:53:23
本文实例讲述了Android判断网络类型的方法。分享给大家供大家参考,具体如下:
判断网络类型是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<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 "";
}
希望本文所述对大家Android程序设计有所帮助。
标签:Android,网络类型
0
投稿
猜你喜欢
C# WPF数据绑定模板化操作的完整步骤
2023-05-20 15:44:50
C#针对xml基本操作及保存配置文件应用实例
2022-11-24 05:51:17
JDBC实现学生管理系统
2023-01-22 13:22:19
C#9.0新特性详解——顶级程序语句(Top-Level Programs)
2023-07-05 18:46:03
详解Spring Boot加载properties和yml配置文件
2023-11-24 07:14:09
Kotlin协程Channel源码示例浅析
2023-06-14 22:54:08
Spring Boot 集成PageHelper的使用方法
2021-10-04 19:16:30
关于springboot 配置文件中属性变量引用方式@@解析
2023-12-08 21:50:03
SpringCloud @FeignClient参数的用法解析
2022-11-25 06:31:37
Flutter底部导航栏的实现方式
2023-11-05 18:21:36
C#代码实现PDF文档操作类
2022-01-30 07:03:02
java文件读写工具类分享
2023-07-30 21:04:19
SpringBoot2 整合Ehcache组件,轻量级缓存管理的原理解析
2022-02-07 22:04:34
C#获取Description特性的扩展类详解
2022-06-04 13:27:24
myBatis实现三 级嵌套复杂对象的赋值问题
2023-11-23 06:42:26
SpringBoot拦截器Filter的使用方法详解
2023-06-09 07:33:59
C#计算字符串相似性的方法
2022-08-18 11:32:15
判断java文件类型TikaToolKit的实例
2021-06-29 02:31:09
Android Studio卡很久(loading)的问题解决办法
2023-12-08 02:22:23
SpringBoot+Shiro+LayUI权限管理系统项目源码
2021-07-13 16:35:19