2016-03-02 58 views
1

對於我的論文,我需要測量連接到WiFi AP的每個階段需要多長時間。在Android中測量DHCP時間

我可以很容易地使用SUPPLICANT_STATE_CHANGED_ACTION來測量所有內容,但我很難弄清楚如何測量獲取DHCP信息所需的時間。

我只是真的需要知道一定的精度,當Android設備獲得一個新的IP。我嘗試過使用CONNECTIVITY_ACTION,並在BroadcastReceiver內部檢查IP地址,但至少關閉1秒,所以不要太精確。

還有一件事情,如果它是相關的:我將做測試的AP將不會有互聯網連接。

任何想法如何做到這一點?

在此先感謝

回答

1

我設法解決這個問題的方式如下:

創建一個過濾器,WifiManager.NETWORK_STATE_CHANGED_ACTION

當有一個新的事件,我檢查了以下方法:

if (intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){ 
    elapseTime = System.currentTimeMillis() - startTime; 
    WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
    int ipAddress = wifiInfo.getIpAddress(); 
    if (ipAddress != 0 && !wifiConnected) { 
    wifiConnected = true; 
    wifiTimeLog = wifiTimeLog + elapseTime + "," + "DHCP Done" + "\n"; 
    state.setText(wifiTimeLog); 
} 

wifiConnected是一個布爾值,在測試之前設置爲false。獲得IP後還有其他觸發器發生。