Merge "Merge "Introduce getRssi() in CellSignalStrengthLte" am: 5bdf255e0d am: e819bd7a1e" into pi-dev-plus-aosp

am: c8e008b0b4

Change-Id: Icb0e4c780f842b4153287c376fe7be583f1d2540
This commit is contained in:
Shuo Qian
2018-11-12 04:23:52 -08:00
committed by android-build-merger
2 changed files with 46 additions and 0 deletions

View File

@@ -43036,6 +43036,7 @@ package android.telephony {
method public int getLevel();
method public int getRsrp();
method public int getRsrq();
method public int getRssi();
method public int getRssnr();
method public int getTimingAdvance();
method public void writeToParcel(android.os.Parcel, int);

View File

@@ -30,6 +30,25 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
private static final String LOG_TAG = "CellSignalStrengthLte";
private static final boolean DBG = false;
/**
* Indicates the unknown or undetectable RSSI value in ASU.
*
* Reference: TS 27.007 8.5 - Signal quality +CSQ
*/
private static final int SIGNAL_STRENGTH_LTE_RSSI_ASU_UNKNOWN = 99;
/**
* Indicates the maximum valid RSSI value in ASU.
*
* Reference: TS 27.007 8.5 - Signal quality +CSQ
*/
private static final int SIGNAL_STRENGTH_LTE_RSSI_VALID_ASU_MAX_VALUE = 31;
/**
* Indicates the minimum valid RSSI value in ASU.
*
* Reference: TS 27.007 8.5 - Signal quality +CSQ
*/
private static final int SIGNAL_STRENGTH_LTE_RSSI_VALID_ASU_MIN_VALUE = 0;
@UnsupportedAppUsage
private int mSignalStrength;
@UnsupportedAppUsage
@@ -140,6 +159,19 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
return mRsrq;
}
/**
* Get Received Signal Strength Indication (RSSI) in dBm
*
* The value range is [-113, -51] inclusively or {@link CellInfo#UNAVAILABLE} if unavailable.
*
* Reference: TS 27.007 8.5 Signal quality +CSQ
*
* @return the RSSI if available or {@link CellInfo#UNAVAILABLE} if unavailable.
*/
public int getRssi() {
return convertRssiAsuToDBm(mSignalStrength);
}
/**
* Get reference signal signal-to-noise ratio
*
@@ -308,4 +340,17 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
private static void log(String s) {
Rlog.w(LOG_TAG, s);
}
private static int convertRssiAsuToDBm(int rssiAsu) {
if (rssiAsu != SIGNAL_STRENGTH_LTE_RSSI_ASU_UNKNOWN
&& (rssiAsu < SIGNAL_STRENGTH_LTE_RSSI_VALID_ASU_MIN_VALUE
|| rssiAsu > SIGNAL_STRENGTH_LTE_RSSI_VALID_ASU_MAX_VALUE)) {
Rlog.e(LOG_TAG, "convertRssiAsuToDBm: invalid RSSI in ASU=" + rssiAsu);
return CellInfo.UNAVAILABLE;
}
if (rssiAsu == SIGNAL_STRENGTH_LTE_RSSI_ASU_UNKNOWN) {
return CellInfo.UNAVAILABLE;
}
return -113 + (2 * rssiAsu);
}
}