Wifi 斷開和連接上 的廣播監聽

上一次使用的wifi自動斷開/連接的基本方法是:先判斷wifi是否打開,並且連接上,如果連上,則斷開,斷開後再連接,如此循環,因爲打開wifi連接中間有一個時間差,當時是直接用線程,然後讓該線程休眠的辦法,來錯開這個時間差,結果是可以達到想要的效果,可是,可最後發現這樣有問題,因爲這樣硬性地去控制爲休眠多少秒,顯然有問題,如果考慮到硬件和環境等等的額外因素,萬一休眠過後還是沒有做完上一步,所以只能棄用這種辦法,選擇利用廣播去監聽wifi的真實狀態,例如,能夠準確獲取到wifi是否已經開打,或者斷開,而不是一切別的時候,例如正在斷開,和正在連接,就不會出現其實是在正在連接的狀態卻被判斷成了無連接wifi。

// 監聽wifi狀態廣播
private BroadcastReceiver mwifiBroadcastReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            ConnectivityManager localConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo localNetworkInfo = (localConnectivityManager == null ? null
                    : localConnectivityManager.getActiveNetworkInfo());
            if (localNetworkInfo != null) {
                if (localNetworkInfo.isConnected()) {
                    //已連接
                } else {
                    //斷開連接
                }
            } else {
                    //localNetworkInfo is null, NETWORK................DISCONNECT......
            }
        }
    }
};
//註冊廣播
            IntentFilter myIntentFilter = new IntentFilter();
            myIntentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            registerReceiver(mwifiBroadcastReceiver,myIntentFilter);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章