已连上和没连上AP的RSSI的获取不一样。对于已连接的AP,代码调用流程如下:
fetchRssiAndLinkSpeedNative() |WifiNative.signalPoll() |//send "SIGNAL_POLL" to wpa_supplicant |wpa_supplicant_signal_poll() |wpa_drv_signal_poll() |nl80211_signal_poll() |nl80211_get_link_signal() |nl80211_cmd()//send NL80211_CMD_GET_STATION command to 80211cfg |nl80211_get_station() |wlan_hdd_cfg80211_get_station() |wlan_hdd_get_rssi() |sme_GetRssi() |csrGetRssi() |//send eWNI_SME_GET_RSSI_REQ |csrUpdateRssi() |WLANTL_GetRssi() |pRssi = pClientSTA->rssiAvg//pClientSTA->rssiAvg is updated in WLANTL_HSGetRSSI() |sendRssiChangeBroadcast()//send WifiManager.RSSI_CHANGED_ACTION intent //below function is called when receiving each frame (including data frame) WLANTL_RxFrames() or WLANTL_RxCachedFrames() |WLANTL_HSHandleRXFrame() |WLANTL_HSGetRSSI()