2

I used cellInfo to get four parameters: rssi, rsrp, rsrq and sinr. I can't find right solution to solve this problem. Does anyone know how to get CellInfo? I am currently using Android Emulator. My Manifest permissions:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>

Code:

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
 cellInfoList = tm.getAllCellInfo();
        for (CellInfo cellInfo : cellInfoList) {
            if (cellInfo instanceof CellInfoLte) {
                rssi = ((CellInfoLte) cellInfo).getCellSignalStrength().getRssi();
                rsrp = ((CellInfoLte) cellInfo).getCellSignalStrength().getRsrp();
                rsrq =  ((CellInfoLte) cellInfo).getCellSignalStrength().getRsrq();
                snr = ((CellInfoLte) cellInfo).getCellSignalStrength().getRssnr();

            }
        }

    rssiValue.setText(String.valueOf(rssi));
    rsrpValue.setText(String.valueOf(rsrp));
    rsrqValue.setText(String.valueOf(rsrq));
    sinr.setText(String.valueOf(snr));
Bakkeldi
  • 21
  • 1
  • 5
  • Were you able to resolve this? I have the same issue. I've added the FINE_LOCATION permission as well. – KKM Aug 26 '20 at 07:49

1 Answers1

0

According to the official documentation calling this method requires ACCESS_FINE_LOCATION permission, you only ask for COARSE.

marmor
  • 27,641
  • 11
  • 107
  • 150