android中wifi的扫描流程

主要涉及的类和关键方法见下图。

android中wifi的扫描流程

wifi的很多操作,如打开关闭wifi,扫描wifi列表都是由WifiManager.java来提供的,而WifiManager.java的实现又由WifiServiceImpl.java来完成。对于wifi的扫描操作,调用的方法就是getScanRsult(String callingPackage)。在执行扫描任务之前,Binder首先会检查调用者的UID,根据包名,UID判断调用者是否具有权限。然后用WifiScanner的getSingleScanResult()来获取扫描的结果。