接続の変更をリッスンするブロードキャスト レシーバーを作成しています。
私の目標は、2g ネットワークが利用可能かどうか (wifi があるかどうか) を確認することです。
いくつかの記事を読んでクラスを書き直しましたが、適切な結果が得られません...
どんな助けでも素晴らしいでしょう...
接続の変更をリッスンするブロードキャスト レシーバーを作成しています。
私の目標は、2g ネットワークが利用可能かどうか (wifi があるかどうか) を確認することです。
いくつかの記事を読んでクラスを書き直しましたが、適切な結果が得られません...
どんな助けでも素晴らしいでしょう...
実際に 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;
}
これを試して
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();
}
}
ConnectivityManagerクラスgetActiveNetworkInfo()
のメソッドを使用してみてください。
これを試して。
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
}
}