我正在编写一个监听连接变化的广播接收器。
我的目标是检查 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;
}
尝试使用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
}
}
试试这个
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();
}
}