Я фиксирую значения RSSI сигналов LTE, используя следующий код:
cInfoList = telephony_manager.getAllCellInfo()
for (CellInfo info : cInfoList){
if (info instanceof CellInfoLte) {
CellSignalStrengthLte signalstrength_lte = ((CellInfoLte) info).getCellSignalStrength();
displayAsu.setText(signalstrength_lte.getAsuLevel() + "");
displayDbm.setText(signalstrength_lte.getDbm() + "");
}
}
(* примечание: я просто упростил свой код: цикл for не переопределяет текстовые поля.)
В одном телефоне (LG G4) я получаю значимые значения: Asu_level=32, dbm=-108
Но в другом телефоне (Samsung Galaxy S6) я получаю неверные значения: Asu_level=97, dbm=1022
В настройках телефона Samsung->О телефоне->Статус->Сила сигнала я вижу -107dBm 33 asu (что имеет смысл)
LG G4: Android 5.1, API 22 и Samsung Galaxy S6: Android 5.0.2, API 21
Почему один и тот же код показывает разное поведение (уровни Asu) на разных телефонах?