如何使用SUPPLICANT_STATE_CHANGED_ACTION WiFi BroadcastReceiver - android

Vik*_*pta 3 android broadcastreceiver android-intent wifimanager

我想在设备连接到wifi网络时在屏幕上显示连接过程.SUPPLICANT_STATE_CHANGED_ACTION由WifiManager提供,但我不知道如何使用它.有人可以帮我吗?

sle*_*dig 7

您确实可以使用广播意图SUPPLICANT_STATE_CHANGED_ACTION:

该应用程序需要其Manifest文件中的权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

然后注册系统广播:

    MyWifiStateReceiver handler = new MyWifiStateReceiver();
    context.registerReceiver(handler, new IntentFilter(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION));
Run Code Online (Sandbox Code Playgroud)

registerReceiver()需要实现类的实例BroadcastReceiver作为第一个参数.在该代码中,您可以通过覆盖onReceive方法来处理Wifi状态更改.例如

public class MyWifiStateReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        if (intent.getAction().equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION))
        {
            SupplicantState state = (SupplicantState) intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE);
            switch(state)
            {
                case COMPLETED:
                case DISCONNECTED:
                    ...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有关可能的Wifi状态值,请参阅http://developer.android.com/reference/android/net/wifi/SupplicantState.html