В настоящее время я разрабатываю приложение для Android для своего университетского исследовательского проекта. Это приложение должно иметь возможность считывать уровни RSSI ближайших базовых станций GSM. Я написал следующую функцию, которая успешно считывает уровни RSSI соседних ячеек. Я вызываю эту функцию каждые 200 мс, но значения RSSI почти не меняются со временем. Я подозреваю, что процессор основной полосы частот обновляет эти значения только каждые x s, но я ничего не могу найти о частоте обновления. Кто-нибудь знает, как быстро обновляется информация в getAllCellInfo()? Причина, по которой я хочу это знать, заключается в том, что время очень важно для моей установки. В лаборатории мы включаем и отключаем глушилку на определенной частоте (более 1 Гц). Когда помеха включена, значение RSSI упадет. Поэтому я хотел бы знать, как быстро можно обновить RSSI, чтобы обнаружить падение этого сигнала, если глушитель включен и отключен, например, на частоте 10 Гц.
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.