完全建立wifi连接后获取意图动作

时间:2014-07-17 11:29:14

标签: android android-wifi

在与无线网络建立实际连接后,我尝试在接收器中进行意图操作。

我现在正在使用" 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 
    }

1 个答案:

答案 0 :(得分: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);

您必须至少看到其中一项操作。