android 判断2g 3g 4g,如何确定网络类型是2G,3G还是4G

根据此处的Android开发人员文档和Wikipedia链接,我给出了注释并定义了网络类型。请检查注释中的链接。

您可以使用getNetworkType获取网络类型。

public class CommonUtils {

/**

* To get device consuming netowkr type is 2g,3g,4g

*

* @param context

* @return "2g","3g","4g" as a String based on the network type

*/

public static String getNetworkType(Context context) {

TelephonyManager mTelephonyManager = (TelephonyManager)

context.getSystemService(Context.TELEPHONY_SERVICE);

int networkType = mTelephonyManager.getNetworkType();

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:

return "2g";

case TelephonyManager.NETWORK_TYPE_UMTS:

case TelephonyManager.NETWORK_TYPE_EVDO_0:

case TelephonyManager.NETWORK_TYPE_EVDO_A:

/**

From this link https://en.wikipedia.org/wiki/Evolution-Data_Optimized ..NETWORK_TYPE_EVDO_0 & NETWORK_TYPE_EVDO_A

EV-DO is an evolution of the CDMA2000 (IS-2000) standard that supports high data rates.

Where CDMA2000 https://en.wikipedia.org/wiki/CDMA2000 .CDMA2000 is a family of 3G[1] mobile technology standards for sending voice,

data, and signaling data between mobile phones and cell sites.

*/

case TelephonyManager.NETWORK_TYPE_HSDPA:

case TelephonyManager.NETWORK_TYPE_HSUPA:

case TelephonyManager.NETWORK_TYPE_HSPA:

case TelephonyManager.NETWORK_TYPE_EVDO_B:

case TelephonyManager.NETWORK_TYPE_EHRPD:

case TelephonyManager.NETWORK_TYPE_HSPAP:

//Log.d("Type", "3g");

//For 3g HSDPA , HSPAP(HSPA+) are main  networktype which are under 3g Network

//But from other constants also it will 3g like HSPA,HSDPA etc which are in 3g case.

//Some cases are added after  testing(real) in device with 3g enable data

//and speed also matters to decide 3g network type

//https://en.wikipedia.org/wiki/4G#Data_rate_comparison

return "3g";

case TelephonyManager.NETWORK_TYPE_LTE:

//No specification for the 4g but from wiki

//I found(LTE (Long-Term Evolution, commonly marketed as 4G LTE))

//https://en.wikipedia.org/wiki/LTE_(telecommunication)

return "4g";

default:

return "Notfound";

}

}

/**

* To check device has internet

*

* @param context

* @return boolean as per status

*/

public static boolean isNetworkConnected(Context context) {

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = cm.getActiveNetworkInfo();

return netInfo != null && netInfo.isConnected();

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值