当前位置: 首页 > news >正文

蓝色商务网站模板抄袭网站违法

蓝色商务网站模板,抄袭网站违法,华为云企业邮箱,做导航网站成本接(一百五十五)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理 扫描失败上报梳理发现梳理的差了很多#xff0c;特补充1.WificondScannerImplOverridepublic boolean startSingleScan(WifiNative.ScanSettings settings,WifiNative.ScanEventHandler eventHandler) {i…接(一百五十五)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理 扫描失败上报梳理发现梳理的差了很多特补充1.WificondScannerImplOverridepublic boolean startSingleScan(WifiNative.ScanSettings settings,WifiNative.ScanEventHandler eventHandler) {if (eventHandler null || settings null) {Log.w(TAG, Invalid arguments for startSingleScan: settings settings ,eventHandler eventHandler);return false;}synchronized (mSettingsLock) {if (mLastScanSettings ! null) {Log.w(TAG, A single scan is already running);return false;}ChannelCollection allFreqs mChannelHelper.createChannelCollection();boolean reportFullResults false;for (int i 0; i settings.num_buckets; i) {WifiNative.BucketSettings bucketSettings settings.buckets[i];if ((bucketSettings.report_events WifiScanner.REPORT_EVENT_FULL_SCAN_RESULT) ! 0) {reportFullResults true;}allFreqs.addChannels(bucketSettings);}Set hiddenNetworkSSIDSet new HashSet();if (settings.hiddenNetworks ! null) {int numHiddenNetworks Math.min(settings.hiddenNetworks.length, MAX_HIDDEN_NETWORK_IDS_PER_SCAN);for (int i 0; i numHiddenNetworks; i) {hiddenNetworkSSIDSet.add(settings.hiddenNetworks[i].ssid);}}mLastScanSettings new LastScanSettings(mClock.getElapsedSinceBootMillis(),reportFullResults, allFreqs, eventHandler);boolean success false;Set freqs;if (!allFreqs.isEmpty()) {freqs allFreqs.getScanFreqs();success mWifiNative.scan(mIfaceName, settings.scanType, freqs, hiddenNetworkSSIDSet);if (!success) {Log.e(TAG, Failed to start scan, freqs freqs);}} else {// There is a scan request but no available channels could be scanned for.// We regard it as a scan failure in this case.Log.e(TAG, Failed to start scan because there is no available channel to scan);}if (success) {if (DBG) {Log.d(TAG, Starting wifi scan for freqs freqs);}mScanTimeoutListener new AlarmManager.OnAlarmListener() {Override public void onAlarm() {handleScanTimeout();}};mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,mClock.getElapsedSinceBootMillis() SCAN_TIMEOUT_MS,TIMEOUT_ALARM_TAG, mScanTimeoutListener, mEventHandler);} else {// indicate scan failure asyncmEventHandler.post(new Runnable() {Override public void run() {reportScanFailure();}});}return true;}}1.1 命令下发成功后的失败下发扫描命令成功后会设立一个15s的倒计时若15s没有失败或者成功上报就会上报一个失败最终触发广播通知/*** Duration to wait before timing out a scan.** The expected behavior is that the hardware will return a failed scan if it does not* complete, but timeout just in case it does not.*/private static final long SCAN_TIMEOUT_MS 15000;private void handleScanTimeout() {synchronized (mSettingsLock) {Log.e(TAG, Timed out waiting for scan result from wificond);reportScanFailure();mScanTimeoutListener null;}}Overridepublic boolean handleMessage(Message msg) {switch(msg.what) {case WifiMonitor.SCAN_FAILED_EVENT:Log.w(TAG, Scan failed);cancelScanTimeout();reportScanFailure();break;case WifiMonitor.PNO_SCAN_RESULTS_EVENT:pollLatestScanDataForPno();break;case WifiMonitor.SCAN_RESULTS_EVENT:cancelScanTimeout();pollLatestScanData();break;default:// ignore unknown event}return true;}另外扫描结果获取失败也会回调上来告诉上层获取扫描结果失败与扫描结果成功对应的有个失败的回调scanner_impl.javavoid ScannerImpl::OnScanResultsReady(uint32_t interface_index, bool aborted,vector ssids,vector frequencies) {if (!scan_started_) {LOG(INFO) Received external scan result notification from kernel.;}scan_started_ false;if (scan_event_handler_ ! nullptr) {// TODO: Pass other parameters back once we find framework needs them.if (aborted) {LOG(WARNING) Scan aborted;scan_event_handler_-OnScanFailed();} else {scan_event_handler_-OnScanResultReady();}} else {LOG(WARNING) No scan event handler found.;}}http://androidxref.com/9.0.0_r3/xref/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WificondControl.java#9783 private class ScanEventHandler extends IScanEvent.Stub {84 private String mIfaceName;8586 ScanEventHandler(NonNull String ifaceName) {87 mIfaceName ifaceName;88 }8990 Override91 public void OnScanResultReady() {92 Log.d(TAG, Scan result ready event);93 mWifiMonitor.broadcastScanResultEvent(mIfaceName);94 }9596 Override97 public void OnScanFailed() {98 Log.d(TAG, Scan failed event);99 mWifiMonitor.broadcastScanFailedEvent(mIfaceName);100 }101 }http://androidxref.com/9.0.0_r3/xref/frameworks/opt/net/wifi/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java#268265 Override266 public boolean handleMessage(Message msg) {267 switch(msg.what) {268 case WifiMonitor.SCAN_FAILED_EVENT:269 Log.w(TAG, Scan failed);270 cancelScanTimeout();271 reportScanFailure();272 break;1.2 命令下发的失败可以看到这个扫描命令流程下发一直会有个执行成功or失败的返回值这会告诉上层执行命令的成功与否。2.总结扫描失败分扫描命令下发失败扫描过程中失败扫描结果获取超时扫描命令下发成功其实就是打个log后续失败一直会上报给上层上层会以广播的形式告知命令下发后kernel去扫描扫描到结果后会告诉上层来取上层这时会再下发命令将扫描结果取上来而不是之前想的kernel扫描到结果后就直接将结果报上来上层直接就用了上层并没有用回调上来的结果而是自己知道结果好了又向kernel要了下结果。这段逻辑在http://androidxref.com/9.0.0_r3/xref/frameworks/opt/net/wifi/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java#276http://androidxref.com/9.0.0_r3/xref/system/connectivity/wificond/scanning/scan_utils.cpp#77
http://www.pierceye.com/news/877652/

相关文章:

  • 怎么制作网站应用wordpress 淘宝客赚钱
  • 网站在政务新媒体建设方案打开手机网站速度慢
  • 网站备案表服务类网站模板
  • 个人网站维护费用淮安注册公司
  • 网站提交做海鱼的网站
  • 建设网站业务竞争大唯一做魅惑的网站
  • 建设学校网站的意义更换wordpress图标
  • 环保局网站如何做备案证明在线代理服务器网页版
  • 十佳网站武昌做网站哪家好
  • wordpress调用同分类最新文章seo营销网站的设计标准
  • 免费下载网站有哪些连云港网络公司排名
  • 如何迅速建企业网站毕设做网站需要什么技术准备
  • 可以做音基题的音乐网站公司网页设计怎么弄
  • 益阳营销型网站建设乌鲁木做兼职的网站
  • 如何建单位网站怎么让别人找你做网站
  • 青海建设厅职称网站建设小程序怎么挂失
  • 建设在线购物网站51zwd一起做网站广州
  • 如何制作网站图片帮忙做网站
  • 高端做网站公司网络信息安全公司
  • 手机网站图片自适应建设网站用的软件
  • wordpress postid随机苏州百度推广排名优化
  • 重庆企业网站推广服务做性的网站
  • asp.net 创建网站登陆建设银行网站异常
  • 柳州网站建设柳州wordpress 创建文集
  • 怎样把网站做成app多语言网站建设方案
  • 中国最新新闻头条南通百度网站快速优化
  • 乐清网站推广制作长沙银狐做网站
  • 做企业网站需要多久论坛网站推广方案
  • 郑州网站优化排名wordpress搭建本地博客
  • 如何获取网站域名证书刚刚北京传来重大消息