Merge "Introduce getRssi() in CellSignalStrengthLte"
This commit is contained in:
@@ -42293,6 +42293,7 @@ package android.telephony {
|
|||||||
method public int getLevel();
|
method public int getLevel();
|
||||||
method public int getRsrp();
|
method public int getRsrp();
|
||||||
method public int getRsrq();
|
method public int getRsrq();
|
||||||
|
method public int getRssi();
|
||||||
method public int getRssnr();
|
method public int getRssnr();
|
||||||
method public int getTimingAdvance();
|
method public int getTimingAdvance();
|
||||||
method public void writeToParcel(android.os.Parcel, int);
|
method public void writeToParcel(android.os.Parcel, int);
|
||||||
|
|||||||
@@ -31,6 +31,25 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
|
|||||||
private static final String LOG_TAG = "CellSignalStrengthLte";
|
private static final String LOG_TAG = "CellSignalStrengthLte";
|
||||||
private static final boolean DBG = false;
|
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
|
@UnsupportedAppUsage
|
||||||
private int mSignalStrength;
|
private int mSignalStrength;
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
@@ -141,6 +160,19 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
|
|||||||
return mRsrq;
|
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
|
* Get reference signal signal-to-noise ratio
|
||||||
*
|
*
|
||||||
@@ -309,4 +341,17 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
|
|||||||
private static void log(String s) {
|
private static void log(String s) {
|
||||||
Rlog.w(LOG_TAG, 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user