I'm currently developing an Android application for my university research project. This app should be able to read the RSSI levels of the nearby GSM base stations. I coded the following function which succesfully reads the RSSI levels of the nearby cells. I'm calling this function every 200 ms but the RSSI values almost don't change over time. I suspect the baseband processor only update these values each x s but I can't find anything about the refresh rate. Does anybody know how fast the info in getAllCellInfo() is refreshed? The reason I want to know this is because timing is realy important for my set-up. In the lab we enable and disable a jammer at a certain frequency (greater than 1 Hz). When the jammer is enabled the RSSI value will drop. So I would like to know how fast the RSSI can be refreshed to detect this signal drops if the jammer is enabled and disabled at for example 10 hz.
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;
}
In case this refresh rate is device specific I'm on a nexus 5 android 6.0.1