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

本文详细介绍了在Wi-Fi环境中,对于已经连接的接入点(AP)如何通过一系列的软件调用流程来获取RSSI(信号强度指示)。从fetchRssiAndLinkSpeedNative函数开始,经过wpa_supplicant和nl80211等组件,最终更新信号强度并广播给应用层。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值