2014-07-08 52 views
0

我正在開發Android應用。我正在使用此代碼獲得無線網絡結果:在Android中查找帶有特定時間間隔的WIFI結果

import java.util.ArrayList; 
import java.util.List; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.net.wifi.ScanResult; 
import android.net.wifi.WifiManager; 
import android.widget.Toast; 

public class WirelessNetworks 
{ 
    private static WifiManager wifi; 
    private static List<ScanResult> results; 
    private static WifiReceiver receiverWifi; 
    private static Context context; 

    public static void Initial(Context cont) 
    { 
     context=cont; 
     wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
     receiverWifi=new WifiReceiver(); 
     context.registerReceiver(receiverWifi, 
       new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
     results=new ArrayList<ScanResult>(); 
    } 

    public static void FindNetworks() 
    { 
     wifi.startScan(); 
     results.clear(); 
     results=wifi.getScanResults();  
     int size = results.size()-1; 
     while (size >= 0) 
     { 
      String ssid=results.get(size).SSID; 
      String mac=results.get(size).BSSID; 
      int rssi=results.get(size).level; 
      int band=results.get(size).frequency;   
      Globals.DB.insert(ssid, mac, rssi+"", band+""); 
      size--;    
     } 
    } 


    public static class WifiReceiver extends BroadcastReceiver 
    { 
     @Override 
     public void onReceive(Context context, Intent intent) 
     {   

     } 
    } 
} 

此函數「FindNetworks()」每1000毫秒調用一次。 問題是相同的結果冗餘每3或4次,我認爲應該增加間隔調用到4000毫秒。 但這是我的應用程序的問題。 有沒有辦法立即獲得每1000毫秒新的WIFI讀數?

回答

1

更新:從Android 4.4和5.0的測試中,連續WiFi掃描之間的間隔似乎不到一秒鐘。如果是這種情況,那麼您可以在首次確定每次掃描之間所需的最短時間後,使用倒數計時器來根據需要頻繁獲取wifi結果。請注意,不同設備可能會有所不同,因此請保留一個有意義的時間窗口。您可以使用Android設備,在這裏看看我的演示進行射頻測量:

https://github.com/panosvas/Measurements

看來,每個WiFi測量需要根據每個設備上大約5秒鐘。所以,通過更快的結果,幾乎可以確定您將獲得相同測量值的重複值。爲了每秒獲得測量結果,您可能會更改驅動程序,我不知道這可能會多麼容易。您還可以看到我的答案在下面的文章:

https://stackoverflow.com/questions/25819271/actively-pulling-wifi-power-information/27014012#27014012

Android Getting WiFi signal strength as it changes

+0

感謝您的幫助:) – bebosh