1

我正在开发一个 android 应用程序,其中我正在检查 2G、3G 和 4G 的移动数据网络类型。我正在使用下面的代码。

        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = cm.getActiveNetworkInfo();

        int netType = info.getType();
        int netSubType = info.getSubtype();

我正在使用以下代码检查 2G 连接。

        if (netType == ConnectivityManager.TYPE_MOBILE && netSubType == TelephonyManager.NETWORK_TYPE_EDGE)
        {
            Log.e("2G enabled","2G enabled");
        }

并使用下面的代码检查 3G 连接。

        else if (netType == ConnectivityManager.TYPE_MOBILE && netSubType == TelephonyManager.NETWORK_TYPE_HSPA)
        {
            Log.e("3G enabled","3G enabled");   
        }

上面的 3G 代码如何不起作用。我也尝试使用下面的代码。

     TelephonyManager.NETWORK_TYPE_HSUPA

     TelephonyManager.NETWORK_TYPE_HSPA

     TelephonyManager.NETWORK_TYPE_HSDPA

仍然无法检测到 3G 可用性。没有找到我要去的地方!请帮忙!谢谢!

4

1 回答 1

1

试试下面的东西:

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);      


if ((tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSDPA)) {
        Log.d("3G enabled", "3G enabled");
    } else if ((tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSPAP)) {
        Log.d("4G enabled", "4G enabled"); 
    }else if ((tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_EDGE)) {
        Log.e("2G enabled","2G enabled");
    }
于 2013-10-16T07:27:33.017 回答