检查wifi扫描是否完成

use*_*777 4 android android-wifi

我正在编写一个代码,用于连续获取范围内所有接入点的信息。

这是我的代码:

       myRunnable = new Runnable() {
       @Override public void run() {
       while(){
       wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
       wifi.startScan(); 
       List<ScanResult>results= wifi.getScanResults();
        try{
          //data Logging
            }  
           } 
         } 
        };

      myThread = new Thread(myRunnable);
      myThread.start();
Run Code Online (Sandbox Code Playgroud)

由于数据的扫描和记录不断重复,我想在记录数据之前检查扫描是否完成。在记录数据之前,是否有任何标志或函数检查 wifi.startScan() 是否完整。你能帮我出一个代码吗?

Sim*_*iak 5

我想在记录数据之前检查扫描是否完成。在记录数据之前,是否有任何标志或函数检查 wifi.startScan() 是否完整。你能帮我出一个代码吗?

是的,有为此目的指定的机制。为了实现您的目标,您需要实现BroadcastReceiver将侦听WiFi扫描。

您所需要的只是BroadcastReceiver使用适当的IntentFilter. 所以你需要这个过滤器操作:

WifiManager.SCAN_RESULTS_AVAILABLE_ACTION
Run Code Online (Sandbox Code Playgroud)

此操作意味着访问点扫描已完成,并且结果可用。然后就创建BroadcastReceiver(静态或动态,没关系)。

如果你不知道如何开始,看看这个教程: