一问题描述:

      wifi p2p必现扫描不到设备。应用层已经调用接口 startDiscovery去发现p2p 设备。必现发现不了设备。日志中没有关键日志onDeviceFound的打印!

二.分析过程

 1.静态代码梳理startDiscovery的流程和扫描结果的上报流程

    

2.结合日志分析

    主要思路是排查1.扫描请求是否正确下发到wpa_supplicant  2.wpa_supplicant有没有扫描到p2p设备并正确上报

1.根据上面梳理的OpenHarmony wifi框架层的DiscoverDevices流程。排查过程中是不是哪一步返回错误了。

经过排查,排查确实是出错返回了。说明命令没有下发到wpa_supplicant中!

       

    3.排查p2pService的启动情况---实际排查结果是p2pserveice启动成功

        1.排查,是否有EnableP2p的动作----------排查结果有!

             搜索关键字EnableP2p,有相关的日志输出!说明有嗲用接口去EnableP2p

             

       2.EnableP2p是成功还是失败:主要接口函数是WifiP2pManager::AutoStartP2pService()

          WIFI_LOGI("AutoStartP2pService, current p2p state:%{public}d", p2pState);

          WIFI_LOGE("service EnableP2p failed, ret %{public}d!", static_cast<int>(ret));

 

      

能搜索到 "AutoStartP2pService, current p2p state:"说明真的有启动p2pservice

没有搜索到"service EnableP2p failed, ret" 说明p2pserveice启动成功!

 

4.汇总分析原因----上层调用时序问题

               

 

三.解决方案

         上层在EnableP2p后,需要等待一段时间再开启扫发现流程。或者发现流程返回错误后,再次StartDiscover

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐