Android Wi-Fi 获取RSSI的代码流程

来源:互联网 发布:新蓝鸟轮毂数据 编辑:程序博客网 时间:2024/05/29 13:55

已连上和没连上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()