当我的设备连接到WiFi网络时,我想在屏幕上显示连接过程。请求状态更改操作是由wifimanager提供的,但我不知道如何使用它。有人能帮我吗?

最佳答案

我不知道有什么回调方法可以让你知道wifi状态何时改变。我使用后台运行的处理程序来轮询信息。
将处理程序添加到类中。

private WifiStatusHandler wifiStatusHandler = new WifiStatusHandler();

打电话开始
wifiStatusHandler.start();

我使用的代码如下。
/**
 * Checks for wifi status updates.
 */
private class WifiStatusHandler extends Handler {
    private boolean running = false;

    public void handleMessage(Message message) {
        if (running) {
            //check wifi status here
            WifiManager wifiMgr = (WifiManager) getSystemService(Context.WIFI_SERVICE);
            int curWifiState = wifiMgr.getWifiState();
            SupplicantState info = wifiMgr.getConnectionInfo().getSupplicantState();
            WifiInfo curWifi = wifiMgr.getConnectionInfo();
            Log.i(TAG,"WIFI STATE = " + info.toString());
            //update the TextView etc.
            sleep();
        }
    }

    private void sleep() {
        removeMessages(0);
        sendMessageDelayed(obtainMessage(0), REFRESH_DELAY);
    }

    public synchronized void start() {
        running = true;
        removeMessages(0);
        sendMessageDelayed(obtainMessage(0), 0);
    }

    public synchronized void stop() {
        running = false;
    }
}

09-25 21:33