天天看点

android 查看wifi状态,Android如何查看wifi log

查看wifi log从打开wifi开始,涉及到的文件packages/apps/Settings下面的WifiSettings.java,WifiEnabler.java。frameworks/base下面的WifiManager.java, WifiService.java,WifiSateMachine.java。external/wpa_supplicant8下面的wpa_supplicant.c。

其中WifiSettings.java对应wifi扫描的界面,switch on/off没有对应的log。WifiEnabler.java,WifiManager.java没有对应的log。

真正看wifi是否打开可以搜索关键字WifiService,可以看到setWifiEnabled: true/false,见hero2 log

更全面的log可以看WifiStateMachine,底层调用搜索关键字wpa_supplicant.

接着总结如何看WifiStateMachine.log。在高通平台Android 5.0中WifiStateMachine打印的log比较少,主要有

1 Invoking mWifiStateMachine.setWifiEnabled(true)

2 CMD_AUTO_CONNECT

3 WifiStateMachine CMD_START_SCAN(连接AP的时候扫描其他AP)

4 Invoking mWifiStateMachine.setWifiEnabled(false)

5 Leaving Connected State

接着来看更加详细的wpa_supplicant.log。

1 CTRL_IFACE:ENABLE_NETWORK id=0(选择需要连接的AP)

2 SCANNING-->ASSOCIATING-->ASSOCIATED   Trying to associate with SSID 'PHONE-WIFI2', Associated on 2437MHz  连接AP

3  ASSOCIATED-->4WAY_HANDSHAKE    高通log中4次握手不明显,没有MTK log中的1/4,2/4.3/4.4/4。

4  4WAY_HANDSHAKE-->GROUP_HANDSHAKE-->COMPLETED    生成key,跟MTK log相比没有出现PTK,GTK等关键词

wpa_supplicant有9种状态DISCONNECTED-->SCANNING-->ASSOCIATING-->ASSOCIATED-->4WAY_HANDSHAKE-->GROUP_HANDSHAKE-->COMPLETED-->DISCONNECTED。

有Saved的AP时初始状态为DISCONNECTED,没有Saved的AP时初始状态为INACTIVE,且在INACTIVE和SCANNING状态之间来回切换。

另外查看wifi log时可以搜索SSID得到路由器的MAC地址,进而得到wifi正在使用的频率,或者直接搜索关键字frenqucy。