我需要在android中获取已连接wifi的SSID。更改无线网络后,我需要输入SSID。
我对此进行了很多搜索,但是没有得到正确的答案。
我已经了解到,为此任务需要一个Broadcast Reciever
。但是我不知道该如何使用广播接收器。任何人都可以帮助我。
我需要采取什么步骤?
下面的方法是获取连接的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;
}
}
};