, увидев, что question и ответы (спасибо, кстати) я писал этот код которым в значительной степени так же, как и в ответах:Использование CellSignalStrengthGsm дает только Integer.MAX_VALUE
try {
List<CellInfo> cellInfoList = telephonyManager.getAllCellInfo();
for (CellInfo cellInfo : cellInfoList) {
if (cellInfo instanceof CellInfoGsm) {
CellInfoGsm cellInfoGsm = (CellInfoGsm) cellInfo;
CellIdentityGsm cellIdentity = cellInfoGsm.getCellIdentity();
final CellSignalStrengthGsm gsm = ((CellInfoGsm) cellInfo).getCellSignalStrength();
rsrpValue = gsm.getDbm();
pciValue = cellIdentity.getCid();
} else if (cellInfo instanceof CellInfoCdma) {
CellInfoCdma cellInfoCdma = (CellInfoCdma) cellInfo;
CellIdentityCdma cellIdentity = cellInfoCdma.getCellIdentity();
pciValue = cellIdentity.getBasestationId();
} else if (cellInfo instanceof CellInfoLte){
CellInfoLte cellInfoLte = (CellInfoLte) cellInfo;
CellIdentityLte cellIdentity = cellInfoLte.getCellIdentity();
pciValue = cellIdentity.getPci();
} else {
throw new Exception("Unknown type of cell signal!");
}
}
} catch (Exception e) {
Log.e(TAG, "Unable to obtain cell signal information", e);
}
Но когда я показываю rsrpValue или pciValue для GSM, я всегда получаю максимальное целочисленное значение (2147483647). Я попробовал это на телефоне с API 17. Что-то не так в моем коде?
Благодаря
Ваш телефон gsm? – njzk2
S4 mini i9195 GSM и LTE. Кроме того, это действительно экземпляр CellInfoGsm, поскольку rsrpValue отображает 2147483647 (Integer.MAX_VALUE), а не 0, когда я его инициализировал. – Grego
Вы пытались получить уровень Асу вместо этого? – njzk2