2014-07-17 45 views
0

在與無線網絡建立實際連接後,我嘗試在接收器中獲得意向操作。無線連接完全建立時獲取意圖操作

我現在正在處理「NETWORK_STATE_CHANGED_ACTION」,但是當連接成功但尚未激活時會觸發此事件。完全連接需要幾秒鐘,isConnected()返回true(我用來標記一些更改)。

ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
NetworkInfo wifiNI = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

wifiNI.isConnected(); 

我也使用「SUPPLICANT_CONNECTION_CHANGE_ACTION」試過,但我不能讓我的接收機的任何行動。

任何想法?

編輯:

最終,該解決方案是在 「NETWORK_STATE_CHANGED_ACTION」 裏我應該關注的NetworkInfo狀態:

NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); 
    NetworkInfo.State state = networkInfo.getState(); 

    if(state.equals(NetworkInfo.State.CONNECTED)) 
    { 
     // wireless is now connected 
    } 
+0

http://stackoverflow.com/questions/5888502/how-to-detect-when-wifi-connection-has-been-established-in-android?rq=1 –

+0

正如我已經提到的,「SUPPLICANT_CONNECTION_CHANGE_ACTION」不適合我。與此用戶相同:https://stackoverflow.com/questions/5888502/how-to-detect-when-wifi-connection-has-been-established-in-android?rq=1#comment26991696_5890553 – klitemnistra

回答

0

具有以下

 wifiReceiver = new WifiReceiver(); 

     final IntentFilter newFilter = new IntentFilter(); 
     newFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); 
     newFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); 
     newFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); 
     newFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); 
     newFilter.addAction(WifiManager.EXTRA_SUPPLICANT_CONNECTED); 

     registerReceiver(wifiReceiver, newFilter); 

您註冊接收器必須至少看到其中一項行動。

+0

SCAN_RESULTS不通知關於無線連接,WIFI_STATE是關於無線狀態(開/關),SUPPLICANT是不適合我的(我上面提到它,因爲我也是關於NETWORK_STATE的)。此代碼是否適用於我在我的問題中描述的問題? – klitemnistra

+0

我發佈了適用於我的解決方案,您不會收到任何此寄存器白衣? –

+0

我確實收到了行動,但沒有解決我的問題。我正在尋找一種意圖,在實際連接完全建立時通知接收方,而不僅僅是新網絡的成功設置(NETWORK_STATE工作良好)。 – klitemnistra