問題:
public class NetStatReceiver extends BroadcastReceiver {
public static final String netACTION = "android.net.conn.CONNECTIVITY_CHANGE";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
this.context = context;
if (intent.getAction().equals(netACTION)) {
// Intent中ConnectivityManager.EXTRA_NO_CONNECTIVITY這個關鍵字表示著當前是否串連上了網路
boolean isBreak = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (!isBreak) {//有網路
//3G跟WIFI切換的時候,會收到三個這樣的廣播,第一個廣播把wifi串連上,第二個廣播到3G關閉掉,第三個廣播把wifi串連上。但是我這裡只想提醒使用者一次啊,怎麼把另外兩次提醒屏蔽掉呢?誰有好的方法,android方面著手的,或者java方面著手的。
}else {
}
解決辦法:
NetworkInfo netInfo = (NetworkInfo) b.get(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo.State state = netInfo.getState();
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if ((state == NetworkInfo.State.CONNECTED) && (activeNetInfo != null) && (activeNetInfo.getType() != netInfo.getType())) {return;}
activeNetInfo.getType() != netInfo.getType()
http://topic.csdn.net/u/20121023/09/1fe1c63b-4ec9-4ae2-9b98-e7e86bd783d0.html