2017-08-09 97 views
1

         我想實現一個應用程序,它可以測量室內環境中的WiFi信號的質量。從我的研究中,我發現獲得精確測量的最佳方法不是隻獲得RSSI,而是使用SNR(信噪比)。如何獲得Android的WiFi噪音水平?

如何從Android SDK獲取噪音級別?據我所知,這裏沒有可用的API。但是,我發現了一個method,它提供了SNR(getEvdoSnr())。不幸的是,這隻適用於GSM/CDMA信號,而不適用於WiFi連接。

是否有可能計算Android中的信噪比?我相信這是可行的,因爲我在Play商店中找到了一個應用程序(稱爲WiFi SNR),該應用程序成功測量了此比率。


注意:Android的ScanResult不提供的噪聲水平,即使它的官方文檔中自行指定:

介紹有關檢測到的接入點信息。除了此處所述的屬性之外,請求方還跟蹤質量,噪聲和maxbitrate屬性,但當前不會將它們報告給外部客戶端。

回答

1

使用https://developer.android.com/reference/android/net/wifi/ScanResult.html

介紹有關檢測到的接入點的信息。除了此處描述的屬性,請求方始終跟蹤質量,噪音和最大比特屬性,但目前不向外部客戶報告它們。

我敢打賭,這樣的事情會給你想要的信息:

WifiManager manager = (WifiManager) getApplication().getSystemService(Context.WIFI_SERVICE); 
for (ScanResult result : wifiManager.getScanResults()) { 
    // do your stuff 
} 
+0

感謝您的答覆。我之前嘗試過,沒有任何描述噪音水平的相關數據。然而,我已經整合了這個片段,我收到的全部是: 'scanResult = SSID:HI-LINK_006B,BSSID:3c:33:00:a2:00:6a,HESSID:,capabilities:[WPA- PSK-CCMP] [WPA2-PSK-CCMP] [WPS] [ESS],等級:-85,頻率:2412,時間戳:101848429875,距離:?(cm),distanceSd:?(cm)' –

+0

在API中:**'使用calculateSignalLevel(int,int)'將此數字轉換爲可以顯示給用戶的絕對信號電平。 –

+0

好的,這種方法確實用於分類功率強度(按等級),但仍然用於RSSI信號。我從ScanResults收到的信息不包含噪聲信號(以RSSI表示爲dBm)。噪音應該是分開的測量。 –