A few people over the past decade have asked similar questions but none have ANY answers. I need to write an android app that collects and stores RSRP, RSRQ, CINR, and Cell
At the beginning I encountered with cases when Cell Info is null, not allowed to access Cell Info and so on. Finally I found a way to get parameters from LTE. This code works for me to get parameters like: rsrp, rsrq and sinr. I hope it will work for you also.
List cellInfoList;
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
cellInfoList = tm.getSignalStrength().getCellSignalStrengths();
for (CellSignalStrength cellInfo : cellInfoList) {
if (cellInfo instanceof CellSignalStrengthLte) {
rsrp = ((CellSignalStrengthLte) cellInfo).getRsrp();
rsrq = ((CellSignalStrengthLte) cellInfo).getRsrq();
snr = ((CellSignalStrengthLte) cellInfo).getRssnr();
}
}
rsrpValue.setText(String.valueOf(rsrp));
rsrqValue.setText(String.valueOf(rsrq));
sinr.setText(String.valueOf(snr));
My Manifest permissions: