[在Android中更改wifi时如何获取连接的wifi ssid

问题描述 投票:0回答:1

我需要在android中获取已连接wifi的SSID。更改无线网络后,我需要输入SSID。

我对此进行了很多搜索,但是没有得到正确的答案。

我已经了解到,为此任务需要一个Broadcast Reciever。但是我不知道该如何使用广播接收器。任何人都可以帮助我。

我需要采取什么步骤?

java android android-wifi
1个回答
0
投票

下面的方法是获取连接的Wifi的SSID。

    public String getConnectedSSID() {
            WifiInfo wifiInfo = getWifiInfo();
            if (wifiInfo != null && wifiInfo.getSupplicantState() == SupplicantState.COMPLETED) {
                Log.i(TAG, "getConnectedSSID" + wifiInfo.getSSID());
                return wifiInfo.getSSID().replace("\"", "");
            } else {
                if (mWifiConnectionListener != null) {
                    mWifiConnectionListener.onError(!mWifiManager.isWifiEnabled() ? WifiConnectionListener.WIFI_ERROR.WIFI_DISABLED : WifiConnectionListener.WIFI_ERROR.WIFI_NOT_CONNECTED);
                }
                return null;
            }
        }

您必须在广播接收机下面注册。intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);mContext.registerReceiver(mWifiConnectivityState, intentFilter);

private final BroadcastReceiver mWifiConnectivityState = new BroadcastReceiver() {
        @Override
        public void onReceive(Context c, Intent intent) {
            String action = intent.getAction();

            switch (action) {

                case ConnectivityManager.CONNECTIVITY_ACTION:
                    NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
                    if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                        switch (networkInfo.getState()) {
                            case CONNECTED:
                                if (getWifiInfo() != null)
                                    mConnectedSSID = getWifiInfo().getSSID();
                                //register callback and pass SSID as parameter.
                                break;
                            case CONNECTING:
                                break;
                            case DISCONNECTED:
                                break;
                            case DISCONNECTING:
                                break;
                        }
                    }
                    break;
            }
        }
    };
© www.soinside.com 2019 - 2024. All rights reserved.