我目前正在爲我的大學研究項目開發一個Android應用程序。這個應用程序應該能夠讀取附近GSM基站的RSSI電平。我編碼了以下函數,它可以成功讀取附近單元的RSSI電平。我每200毫秒調用一次該函數,但RSSI值幾乎不會隨時間變化。我懷疑基帶處理器每次只更新這些值,但我找不到有關刷新率的任何信息。有誰知道getAllCellInfo()中的信息刷新速度有多快?我想知道這一點的原因是因爲時間對我的設置非常重要。在實驗室中,我們啓用和禁用特定頻率(大於1 Hz)的干擾信號。干擾器啓用時,RSSI值將下降。所以我想知道如果在例如10赫茲啓用和禁用干擾器時RSSI可以刷新多快來檢測這個信號下降。Android TelephonyManager getAllCellInfo()刷新率RSSI
public HashMap<Integer,Integer> RSSI_values() {
HashMap<Integer,Integer> result = new HashMap<Integer,Integer>();
TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getNetworkType();
List<CellInfo> CellInfo_list = telephonyManager.getAllCellInfo();
if(telephonyManager.getNetworkType() == TelephonyManager.NETWORK_TYPE_EDGE) {
for (int i = 0; i < CellInfo_list.size(); i++) {
CellInfoGsm cellinfogsm = (CellInfoGsm) CellInfo_list.get(i);
int cid = cellinfogsm.getCellIdentity().getCid();
CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength();
int rssi = cellSignalStrengthGsm.getDbm();
result.put(cid,rssi);
}
}
return result;
}
在這種情況下,刷新率爲特定設備,我在Nexus 5的Android 6.0.1
嗨@GuilhermeP感謝您的回覆。 不幸的是,時機對我的設置非常重要。在實驗室中,我們啓用和禁用特定頻率(大於1 Hz)的干擾信號。干擾器啓用時,RSSI值將下降。所以我想知道如果在例如10赫茲啓用和禁用干擾器時RSSI可以刷新多快來檢測這個信號下降。 – mvanderreek
@mvanderreek最初,我認爲RSSI沒有更新得那麼快。通常情況下,CP(調制解調器)不會通知AP側(Android)任何RSSI波動。這可能會嚴重影響電流消耗並降低電池壽命。上面的實施在RSSI值更新後立即通知您。新通知之前的任何rssi檢查都應返回相同的狀態。也許,你應該搜索如何通過一些RIL請求強制RSSI更新到CP端。我希望你找到更好的解決方案。 – W0rmH0le