1

接続の変更をリッスンするブロードキャスト レシーバーを作成しています。

私の目標は、2g ネットワークが利用可能かどうか (wifi があるかどうか) を確認することです。

いくつかの記事を読んでクラスを書き直しましたが、適切な結果が得られません...

どんな助けでも素晴らしいでしょう...

4

4 に答える 4

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;
}
于 2013-01-25T12:36:08.763 に答える
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();         
    }
}
于 2013-01-25T11:35:41.630 に答える
0

ConnectivityManagerクラスgetActiveNetworkInfo()のメソッドを使用してみてください。

于 2013-01-25T11:22:34.370 に答える
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
    }
    }
于 2013-01-25T11:26:31.807 に答える