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定时扫描流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-19JAVA 企业级项目入门:从零开始的实战指南
- 2024-09-19Java 企业级项目入门:从零基础到实战的进阶之路
- 2024-09-19Java 企业级项目入门:从零开始的实战指南
- 2024-09-18Java OA系统入门:从基础到实践
- 2024-09-18Java OA系统入门:从零开始的简单教程
- 2024-09-18JAVA OA系统入门:从零开始的实战指南
- 2024-09-18Java Web项目入门:快速搭建你的第一个Web应用
- 2024-09-18JAVA web项目入门:从零基础到实战的小白指南
- 2024-09-18Java Web项目入门:从零开始的轻量级教程
- 2024-09-18Java Web项目入门:快速搭建与基础实践