wifi定时扫描流程

2021/4/30 18:57:18

本文主要是介绍wifi定时扫描流程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#if 1


--------- beginning of main

 

https://blog.csdn.net/zx54633089/article/details/110942431?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

java端可参考上面链接

1.java端  WificondControl.scan(WificondControl.java:632)

进程号:2092


04-30 18:07:23.318  2092  2455 E WificondControl: scan wlan0
04-30 18:07:23.319  2092  2455 W System.err: simulator exception: java.lang.RuntimeException: error is here
04-30 18:07:23.320  2092  2455 D run stack: simulator
04-30 18:07:23.320  2092  2455 D run stack: java.lang.RuntimeException: error is here
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.server.wifi.WificondControl.scan(WificondControl.java:632)
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.server.wifi.WifiNative.scan(WifiNative.java:1169)
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.server.wifi.scanner.WificondScannerImpl.startSingleScan(WificondScannerImpl.java:193)
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.server.wifi.scanner.WifiScanningServiceImpl$WifiSingleScanStateMachine.tryToStartNewScan(WifiScanningServiceImpl.java:912)
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.server.wifi.scanner.WifiScanningServiceImpl$WifiSingleScanStateMachine$DriverStartedState.processMessage(WifiScanningServiceImpl.java:635)
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:993)
04-30 18:07:23.320  2092  2455 D run stack:     at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:809)
04-30 18:07:23.320  2092  2455 D run stack:     at android.os.Handler.dispatchMessage(Handler.java:106)
04-30 18:07:23.320  2092  2455 D run stack:     at android.os.Looper.loop(Looper.java:193)
04-30 18:07:23.320  2092  2455 D run stack:     at android.os.HandlerThread.run(HandlerThread.java:65)

 

 

2.hal端

IWifiScannerImpl.aidl

// Request a single scan using a SingleScanSettings parcelable object.
  boolean scan(in SingleScanSettings scanSettings);

进程号:1898  进程号已经改变


--------- beginning of system
04-30 18:07:23.321  1898  1898 E wificond: NL80211_CMD_TRIGGER_SCAN not failed1: Success

04-30 18:07:23.364  1898  1898 D callstack: #00 pc 000207c5  /system/bin/wificond (android::wificond::ScanUtils::Scan(unsigned int, bool, int, std::__1::vector<std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, std::__1::allocator<std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>>> const&, std::__1::vector<unsigned int, std::__1::allocator<unsigned int>> const&, int*)+592)
04-30 18:07:23.365  1898  1898 D callstack: #01 pc 0002e3a3  /system/bin/wificond (android::wificond::ScannerImpl::scan(com::android::server::wifi::wificond::SingleScanSettings const&, bool*)+554)
04-30 18:07:23.365  1898  1898 D callstack: #02 pc 00031a11  /system/bin/wificond (android::net::wifi::BnWifiScannerImpl::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+288)
04-30 18:07:23.365  1898  1898 D callstack: #03 pc 0003613f  /system/lib/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+70)
04-30 18:07:23.365  1898  1898 D callstack: #04 pc 0003d99f  /system/lib/libbinder.so (android::IPCThreadState::executeCommand(int)+410)
04-30 18:07:23.365  1898  1898 D callstack: #05 pc 0003d72b  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+106)
04-30 18:07:23.365  1898  1898 D callstack: #06 pc 0003dce5  /system/lib/libbinder.so (android::IPCThreadState::handlePolledCommands()+12)
04-30 18:07:23.365  1898  1898 D callstack: #07 pc 0001f3cf  /system/bin/wificond ((anonymous namespace)::WatchFdCallback::handleEvent(int, int, void*)+26)
04-30 18:07:23.365  1898  1898 D callstack: #08 pc 0002b0c7  /system/bin/wificond (android::Looper::pollInner(int)+630)
04-30 18:07:23.365  1898  1898 D callstack: #09 pc 0002adcf  /system/bin/wificond (android::Looper::pollOnce(int, int*, int*, void**)+26)
04-30 18:07:23.365  1898  1898 D callstack: #10 pc 0001f261  /system/bin/wificond (android::wificond::LooperBackedEventLoop::Poll()+24)
04-30 18:07:23.365  1898  1898 D callstack: #11 pc 0001233f  /system/bin/wificond (main+726)
04-30 18:07:23.365  1898  1898 D callstack: #12 pc 0008bc15  /system/lib/libc.so (__libc_init+48)
04-30 18:07:23.365  1898  1898 D callstack: #13 pc 00012013  /system/bin/wificond (_start_main+46)
04-30 18:07:23.365  1898  1898 D callstack: #14 pc 0000031e  <anonymous:a9f78000>

04-30 18:07:23.365  1898  1898 E wificond: NL80211_CMD_TRIGGER_SCAN not failed2: Success

 

3.wpa_supplicant

由hal发送 NL80211_CMD_TRIGGER_SCAN netlink消息,wpa_supplicant接收消息

进程号:2756  进程号再次发生改变

04-30 18:07:23.373  2756  2756 I wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
04-30 18:07:23.374  2756  2756 I wpa_supplicant: wlan0: nl80211: Scan trigger

 

 


04-30 18:07:23.374  1898  1898 E wificond: NL80211_CMD_TRIGGER_SCAN not failed5: Success

//hal端的日志

04-30 18:07:24.941  2756  2756 I wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
04-30 18:07:24.941  2756  2756 E wpa_supplicant: wlan0: nl80211: New scan results available
04-30 18:07:24.941  2756  2756 I wpa_supplicant: nl80211: Scan probed for SSID ''
#endif

4.驱动 内核层

04-30 18:07:23.374  2756  2756 I wpa_supplicant: wlan0: nl80211: Scan trigger

通过网络通讯,再把scan的需求 发送给内核

由内核来完成scan动作,然后上报scan结果。

 

 



这篇关于wifi定时扫描流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程