我正在编写一个监听连接变化的广播接收器。
我的目标是检查2g网络是否可用(无论是否有wifi)。
我一直在读几篇文章并重写我的课程,但无法得到正确的结果......
任何帮助都会很棒......
答案 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();
}
}