2014-07-17 15 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