检查2G网络

时间:2013-01-25 11:10:32

标签: android android-networking

我正在编写一个监听连接变化的广播接收器。

我的目标是检查2g网络是否可用(无论是否有wifi)。

我一直在读几篇文章并重写我的课程,但无法得到正确的结果......

任何帮助都会很棒......

4 个答案:

答案 0 :(得分:2)

如果你真的只关心2G,那就行了。

private boolean is2gNetwork() {
    ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo network = conMgr.getActiveNetworkInfo();

    // Check we're connected with a mobile network
    if (null != network && network.isConnectedOrConnecting()
            && network.getType() == ConnectivityManager.TYPE_MOBILE) {

        // Check we're on GPRS or EDGE
        final int subType = network.getSubtype();
        return subType == TelephonyManager.NETWORK_TYPE_EDGE
                || subType == TelephonyManager.NETWORK_TYPE_GPRS;
    }

    return false;
}

答案 1 :(得分:0)

尝试使用ConnectivityManager类的getActiveNetworkInfo()方法。

答案 2 :(得分:0)

试试这个。

   ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (con != null) {
    NetworkInfo info = con.getActiveNetworkInfo();
    if (info != null && (info.isAvailable() || !info .isConnected())) {
    // do your code part
    }
    }

答案 3 :(得分:0)

试试这个

  public void CheckStatus() {               

    ConnectivityManager connectionstate = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo network = connectionstate.getActiveNetworkInfo(); 

    if (network != null && network.isConnected() == true) {
        Toast.makeText(this, "Network Available", Toast.LENGTH_SHORT).show();           
    } else {            
        Toast.makeText(this, "Network Not Available", Toast.LENGTH_SHORT).show();    

        .show();         
    }
}