Не обновляется значение метода Java (Android)
Определяю силу сигнала в дБм. Для этого использую метод:
static int getSignalStrength(Context context3) throws SecurityException {
TelephonyManager telephonyManager = (TelephonyManager) context3.getSystemService(Context.TELEPHONY_SERVICE);
int strength = 0;
assert telephonyManager != null;
List<CellInfo> cellInfos = telephonyManager.getAllCellInfo();
if (cellInfos != null) {
if (cellInfos.get(0).isRegistered()) {
if (cellInfos.get(0) instanceof CellInfoWcdma) {
CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) cellInfos.get(0);
CellSignalStrengthWcdma cellSignalStrengthWcdma = cellInfoWcdma.getCellSignalStrength();
strength = cellSignalStrengthWcdma.getDbm();
} else if (cellInfos.get(0) instanceof CellInfoGsm) {
CellInfoGsm cellInfogsm = (CellInfoGsm) cellInfos.get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = cellInfogsm.getCellSignalStrength();
strength = cellSignalStrengthGsm.getDbm();
} else if (cellInfos.get(0) instanceof CellInfoLte) {
CellInfoLte cellInfoLte = (CellInfoLte) cellInfos.get(0);
CellSignalStrengthLte cellSignalStrengthLte = cellInfoLte.getCellSignalStrength();
strength = cellSignalStrengthLte.getDbm();
} else if (cellInfos.get(0) instanceof CellInfoCdma) {
CellInfoCdma cellInfoCdma = (CellInfoCdma) cellInfos.get(0);
CellSignalStrengthCdma cellSignalStrengthCdma = cellInfoCdma.getCellSignalStrength();
strength = cellSignalStrengthCdma.getDbm();
}
} else {
System.out.println("Другой тип связи");
}
}
return strength;
}
Далее вызываю этот метод в другом классе (по нажатию на кнопку) и присваиваю его значение переменной:
final int signal_dbm = MyDbmClass.getSignalStrength(this);
После этого вывожу результат на экран:
MyText.setText(signal_dbm);
Собственно проблема: значение обновляется только иногда (это ещё более странно, чем если бы оно не обновлялось совсем), обычно же остаётся старым, определённым с предыдущим нажатием кнопки и неверным. Совсем не понимаю почему так происходит, ведь с каждым нажатием на кнопку метод должен вызываться заново и значение должно меняться. Вместе с силой сигнала я вывожу ещё ряд данных таким же способом и они обновляются с каждым нажатием как положено.