Constructors Summary |
---|
public SignalStrength(android.os.Parcel in)Construct a SignalStrength object from the given parcel.
if (DBG) log("Size of signalstrength parcel:" + in.dataSize());
mGsmSignalStrength = in.readInt();
mGsmBitErrorRate = in.readInt();
mCdmaDbm = in.readInt();
mCdmaEcio = in.readInt();
mEvdoDbm = in.readInt();
mEvdoEcio = in.readInt();
mEvdoSnr = in.readInt();
mLteSignalStrength = in.readInt();
mLteRsrp = in.readInt();
mLteRsrq = in.readInt();
mLteRssnr = in.readInt();
mLteCqi = in.readInt();
isGsm = (in.readInt() != 0);
|
public SignalStrength()Empty constructor
mGsmSignalStrength = 99;
mGsmBitErrorRate = -1;
mCdmaDbm = -1;
mCdmaEcio = -1;
mEvdoDbm = -1;
mEvdoEcio = -1;
mEvdoSnr = -1;
mLteSignalStrength = 99;
mLteRsrp = INVALID;
mLteRsrq = INVALID;
mLteRssnr = INVALID;
mLteCqi = INVALID;
isGsm = true;
|
public SignalStrength(boolean gsmFlag)This constructor is used to create SignalStrength with default
values and set the isGsmFlag with the value passed in the input
mGsmSignalStrength = 99;
mGsmBitErrorRate = -1;
mCdmaDbm = -1;
mCdmaEcio = -1;
mEvdoDbm = -1;
mEvdoEcio = -1;
mEvdoSnr = -1;
mLteSignalStrength = 99;
mLteRsrp = INVALID;
mLteRsrq = INVALID;
mLteRssnr = INVALID;
mLteCqi = INVALID;
isGsm = gsmFlag;
|
public SignalStrength(int gsmSignalStrength, int gsmBitErrorRate, int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr, int lteSignalStrength, int lteRsrp, int lteRsrq, int lteRssnr, int lteCqi, boolean gsmFlag)Constructor
initialize(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio,
evdoDbm, evdoEcio, evdoSnr, lteSignalStrength, lteRsrp,
lteRsrq, lteRssnr, lteCqi, gsmFlag);
|
public SignalStrength(int gsmSignalStrength, int gsmBitErrorRate, int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr, boolean gsmFlag)Constructor
initialize(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio,
evdoDbm, evdoEcio, evdoSnr, 99, INVALID,
INVALID, INVALID, INVALID, gsmFlag);
|
public SignalStrength(SignalStrength s)Copy constructors
copyFrom(s);
|
Methods Summary |
---|
protected void | copyFrom(android.telephony.SignalStrength s)
mGsmSignalStrength = s.mGsmSignalStrength;
mGsmBitErrorRate = s.mGsmBitErrorRate;
mCdmaDbm = s.mCdmaDbm;
mCdmaEcio = s.mCdmaEcio;
mEvdoDbm = s.mEvdoDbm;
mEvdoEcio = s.mEvdoEcio;
mEvdoSnr = s.mEvdoSnr;
mLteSignalStrength = s.mLteSignalStrength;
mLteRsrp = s.mLteRsrp;
mLteRsrq = s.mLteRsrq;
mLteRssnr = s.mLteRssnr;
mLteCqi = s.mLteCqi;
isGsm = s.isGsm;
|
public int | describeContents(){@link Parcelable#describeContents}
return 0;
|
public boolean | equals(java.lang.Object o)
SignalStrength s;
try {
s = (SignalStrength) o;
} catch (ClassCastException ex) {
return false;
}
if (o == null) {
return false;
}
return (mGsmSignalStrength == s.mGsmSignalStrength
&& mGsmBitErrorRate == s.mGsmBitErrorRate
&& mCdmaDbm == s.mCdmaDbm
&& mCdmaEcio == s.mCdmaEcio
&& mEvdoDbm == s.mEvdoDbm
&& mEvdoEcio == s.mEvdoEcio
&& mEvdoSnr == s.mEvdoSnr
&& mLteSignalStrength == s.mLteSignalStrength
&& mLteRsrp == s.mLteRsrp
&& mLteRsrq == s.mLteRsrq
&& mLteRssnr == s.mLteRssnr
&& mLteCqi == s.mLteCqi
&& isGsm == s.isGsm);
|
public void | fillInNotifierBundle(android.os.Bundle m)Set intent notifier Bundle based on SignalStrength
m.putInt("GsmSignalStrength", mGsmSignalStrength);
m.putInt("GsmBitErrorRate", mGsmBitErrorRate);
m.putInt("CdmaDbm", mCdmaDbm);
m.putInt("CdmaEcio", mCdmaEcio);
m.putInt("EvdoDbm", mEvdoDbm);
m.putInt("EvdoEcio", mEvdoEcio);
m.putInt("EvdoSnr", mEvdoSnr);
m.putInt("LteSignalStrength", mLteSignalStrength);
m.putInt("LteRsrp", mLteRsrp);
m.putInt("LteRsrq", mLteRsrq);
m.putInt("LteRssnr", mLteRssnr);
m.putInt("LteCqi", mLteCqi);
m.putBoolean("isGsm", Boolean.valueOf(isGsm));
|
public int | getAsuLevel()Get the signal level as an asu value between 0..31, 99 is unknown
int asuLevel;
if (isGsm) {
if (getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
asuLevel = getGsmAsuLevel();
} else {
asuLevel = getLteAsuLevel();
}
} else {
int cdmaAsuLevel = getCdmaAsuLevel();
int evdoAsuLevel = getEvdoAsuLevel();
if (evdoAsuLevel == 0) {
/* We don't know evdo use, cdma */
asuLevel = cdmaAsuLevel;
} else if (cdmaAsuLevel == 0) {
/* We don't know cdma use, evdo */
asuLevel = evdoAsuLevel;
} else {
/* We know both, use the lowest level */
asuLevel = cdmaAsuLevel < evdoAsuLevel ? cdmaAsuLevel : evdoAsuLevel;
}
}
if (DBG) log("getAsuLevel=" + asuLevel);
return asuLevel;
|
public int | getCdmaAsuLevel()Get the cdma signal level as an asu value between 0..31, 99 is unknown
final int cdmaDbm = getCdmaDbm();
final int cdmaEcio = getCdmaEcio();
int cdmaAsuLevel;
int ecioAsuLevel;
if (cdmaDbm >= -75) cdmaAsuLevel = 16;
else if (cdmaDbm >= -82) cdmaAsuLevel = 8;
else if (cdmaDbm >= -90) cdmaAsuLevel = 4;
else if (cdmaDbm >= -95) cdmaAsuLevel = 2;
else if (cdmaDbm >= -100) cdmaAsuLevel = 1;
else cdmaAsuLevel = 99;
// Ec/Io are in dB*10
if (cdmaEcio >= -90) ecioAsuLevel = 16;
else if (cdmaEcio >= -100) ecioAsuLevel = 8;
else if (cdmaEcio >= -115) ecioAsuLevel = 4;
else if (cdmaEcio >= -130) ecioAsuLevel = 2;
else if (cdmaEcio >= -150) ecioAsuLevel = 1;
else ecioAsuLevel = 99;
int level = (cdmaAsuLevel < ecioAsuLevel) ? cdmaAsuLevel : ecioAsuLevel;
if (DBG) log("getCdmaAsuLevel=" + level);
return level;
|
public int | getCdmaDbm()Get the CDMA RSSI value in dBm
return this.mCdmaDbm;
|
public int | getCdmaEcio()Get the CDMA Ec/Io value in dB*10
return this.mCdmaEcio;
|
public int | getCdmaLevel()Get cdma as level 0..4
final int cdmaDbm = getCdmaDbm();
final int cdmaEcio = getCdmaEcio();
int levelDbm;
int levelEcio;
if (cdmaDbm >= -75) levelDbm = SIGNAL_STRENGTH_GREAT;
else if (cdmaDbm >= -85) levelDbm = SIGNAL_STRENGTH_GOOD;
else if (cdmaDbm >= -95) levelDbm = SIGNAL_STRENGTH_MODERATE;
else if (cdmaDbm >= -100) levelDbm = SIGNAL_STRENGTH_POOR;
else levelDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
// Ec/Io are in dB*10
if (cdmaEcio >= -90) levelEcio = SIGNAL_STRENGTH_GREAT;
else if (cdmaEcio >= -110) levelEcio = SIGNAL_STRENGTH_GOOD;
else if (cdmaEcio >= -130) levelEcio = SIGNAL_STRENGTH_MODERATE;
else if (cdmaEcio >= -150) levelEcio = SIGNAL_STRENGTH_POOR;
else levelEcio = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
int level = (levelDbm < levelEcio) ? levelDbm : levelEcio;
if (DBG) log("getCdmaLevel=" + level);
return level;
|
public int | getDbm()Get the signal strength as dBm
int dBm;
if(isGsm()) {
dBm = getLteDbm();
if (dBm == INVALID) {
dBm = getGsmDbm();
}
} else {
int cdmaDbm = getCdmaDbm();
int evdoDbm = getEvdoDbm();
return (evdoDbm == -120) ? cdmaDbm : ((cdmaDbm == -120) ? evdoDbm
: (cdmaDbm < evdoDbm ? cdmaDbm : evdoDbm));
}
if (DBG) log("getDbm=" + dBm);
return dBm;
|
public int | getEvdoAsuLevel()Get the evdo signal level as an asu value between 0..31, 99 is unknown
int evdoDbm = getEvdoDbm();
int evdoSnr = getEvdoSnr();
int levelEvdoDbm;
int levelEvdoSnr;
if (evdoDbm >= -65) levelEvdoDbm = 16;
else if (evdoDbm >= -75) levelEvdoDbm = 8;
else if (evdoDbm >= -85) levelEvdoDbm = 4;
else if (evdoDbm >= -95) levelEvdoDbm = 2;
else if (evdoDbm >= -105) levelEvdoDbm = 1;
else levelEvdoDbm = 99;
if (evdoSnr >= 7) levelEvdoSnr = 16;
else if (evdoSnr >= 6) levelEvdoSnr = 8;
else if (evdoSnr >= 5) levelEvdoSnr = 4;
else if (evdoSnr >= 3) levelEvdoSnr = 2;
else if (evdoSnr >= 1) levelEvdoSnr = 1;
else levelEvdoSnr = 99;
int level = (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr;
if (DBG) log("getEvdoAsuLevel=" + level);
return level;
|
public int | getEvdoDbm()Get the EVDO RSSI value in dBm
return this.mEvdoDbm;
|
public int | getEvdoEcio()Get the EVDO Ec/Io value in dB*10
return this.mEvdoEcio;
|
public int | getEvdoLevel()Get Evdo as level 0..4
int evdoDbm = getEvdoDbm();
int evdoSnr = getEvdoSnr();
int levelEvdoDbm;
int levelEvdoSnr;
if (evdoDbm >= -65) levelEvdoDbm = SIGNAL_STRENGTH_GREAT;
else if (evdoDbm >= -75) levelEvdoDbm = SIGNAL_STRENGTH_GOOD;
else if (evdoDbm >= -90) levelEvdoDbm = SIGNAL_STRENGTH_MODERATE;
else if (evdoDbm >= -105) levelEvdoDbm = SIGNAL_STRENGTH_POOR;
else levelEvdoDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
if (evdoSnr >= 7) levelEvdoSnr = SIGNAL_STRENGTH_GREAT;
else if (evdoSnr >= 5) levelEvdoSnr = SIGNAL_STRENGTH_GOOD;
else if (evdoSnr >= 3) levelEvdoSnr = SIGNAL_STRENGTH_MODERATE;
else if (evdoSnr >= 1) levelEvdoSnr = SIGNAL_STRENGTH_POOR;
else levelEvdoSnr = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
int level = (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr;
if (DBG) log("getEvdoLevel=" + level);
return level;
|
public int | getEvdoSnr()Get the signal to noise ratio. Valid values are 0-8. 8 is the highest.
return this.mEvdoSnr;
|
public int | getGsmAsuLevel()Get the gsm signal level as an asu value between 0..31, 99 is unknown
// ASU ranges from 0 to 31 - TS 27.007 Sec 8.5
// asu = 0 (-113dB or less) is very weak
// signal, its better to show 0 bars to the user in such cases.
// asu = 99 is a special case, where the signal strength is unknown.
int level = getGsmSignalStrength();
if (DBG) log("getGsmAsuLevel=" + level);
return level;
|
public int | getGsmBitErrorRate()Get the GSM bit error rate (0-7, 99) as defined in TS 27.007 8.5
return this.mGsmBitErrorRate;
|
public int | getGsmDbm()Get Gsm signal strength as dBm
int dBm;
int gsmSignalStrength = getGsmSignalStrength();
int asu = (gsmSignalStrength == 99 ? -1 : gsmSignalStrength);
if (asu != -1) {
dBm = -113 + (2 * asu);
} else {
dBm = -1;
}
if (DBG) log("getGsmDbm=" + dBm);
return dBm;
|
public int | getGsmLevel()Get gsm as level 0..4
int level;
// ASU ranges from 0 to 31 - TS 27.007 Sec 8.5
// asu = 0 (-113dB or less) is very weak
// signal, its better to show 0 bars to the user in such cases.
// asu = 99 is a special case, where the signal strength is unknown.
int asu = getGsmSignalStrength();
if (asu <= 2 || asu == 99) level = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (asu >= 12) level = SIGNAL_STRENGTH_GREAT;
else if (asu >= 8) level = SIGNAL_STRENGTH_GOOD;
else if (asu >= 5) level = SIGNAL_STRENGTH_MODERATE;
else level = SIGNAL_STRENGTH_POOR;
if (DBG) log("getGsmLevel=" + level);
return level;
|
public int | getGsmSignalStrength()Get the GSM Signal Strength, valid values are (0-31, 99) as defined in TS
27.007 8.5
return this.mGsmSignalStrength;
|
public int | getLevel()Get signal level as an int from 0..4
int level;
if (isGsm) {
level = getLteLevel();
if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
level = getGsmLevel();
}
} else {
int cdmaLevel = getCdmaLevel();
int evdoLevel = getEvdoLevel();
if (evdoLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
/* We don't know evdo, use cdma */
level = cdmaLevel;
} else if (cdmaLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
/* We don't know cdma, use evdo */
level = evdoLevel;
} else {
/* We know both, use the lowest level */
level = cdmaLevel < evdoLevel ? cdmaLevel : evdoLevel;
}
}
if (DBG) log("getLevel=" + level);
return level;
|
public int | getLteAsuLevel()Get the LTE signal level as an asu value between 0..97, 99 is unknown
Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69
int lteAsuLevel = 99;
int lteDbm = getLteDbm();
/*
* 3GPP 27.007 (Ver 10.3.0) Sec 8.69
* 0 -140 dBm or less
* 1 -139 dBm
* 2...96 -138... -44 dBm
* 97 -43 dBm or greater
* 255 not known or not detectable
*/
/*
* validateInput will always give a valid range between -140 t0 -44 as
* per ril.h. so RSRP >= -43 & <-140 will fall under asu level 255
* and not 97 or 0
*/
if (lteDbm == SignalStrength.INVALID) lteAsuLevel = 255;
else lteAsuLevel = lteDbm + 140;
if (DBG) log("Lte Asu level: "+lteAsuLevel);
return lteAsuLevel;
|
public int | getLteCqi()
return mLteCqi;
|
public int | getLteDbm()Get LTE as dBm
return mLteRsrp;
|
public int | getLteLevel()Get LTE as level 0..4
/*
* TS 36.214 Physical Layer Section 5.1.3 TS 36.331 RRC RSSI = received
* signal + noise RSRP = reference signal dBm RSRQ = quality of signal
* dB= Number of Resource blocksxRSRP/RSSI SNR = gain=signal/noise ratio
* = -10log P1/P2 dB
*/
int rssiIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN, rsrpIconLevel = -1, snrIconLevel = -1;
int rsrpThreshType = Resources.getSystem().getInteger(com.android.internal.R.integer.
config_LTE_RSRP_threshold_type);
int[] threshRsrp;
if (rsrpThreshType == RSRP_THRESH_TYPE_STRICT) {
threshRsrp = RSRP_THRESH_STRICT;
} else {
threshRsrp = RSRP_THRESH_LENIENT;
}
if (mLteRsrp > threshRsrp[5]) rsrpIconLevel = -1;
else if (mLteRsrp >= threshRsrp[4]) rsrpIconLevel = SIGNAL_STRENGTH_GREAT;
else if (mLteRsrp >= threshRsrp[3]) rsrpIconLevel = SIGNAL_STRENGTH_GOOD;
else if (mLteRsrp >= threshRsrp[2]) rsrpIconLevel = SIGNAL_STRENGTH_MODERATE;
else if (mLteRsrp >= threshRsrp[1]) rsrpIconLevel = SIGNAL_STRENGTH_POOR;
else if (mLteRsrp >= threshRsrp[0]) rsrpIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
/*
* Values are -200 dB to +300 (SNR*10dB) RS_SNR >= 13.0 dB =>4 bars 4.5
* dB <= RS_SNR < 13.0 dB => 3 bars 1.0 dB <= RS_SNR < 4.5 dB => 2 bars
* -3.0 dB <= RS_SNR < 1.0 dB 1 bar RS_SNR < -3.0 dB/No Service Antenna
* Icon Only
*/
if (mLteRssnr > 300) snrIconLevel = -1;
else if (mLteRssnr >= 130) snrIconLevel = SIGNAL_STRENGTH_GREAT;
else if (mLteRssnr >= 45) snrIconLevel = SIGNAL_STRENGTH_GOOD;
else if (mLteRssnr >= 10) snrIconLevel = SIGNAL_STRENGTH_MODERATE;
else if (mLteRssnr >= -30) snrIconLevel = SIGNAL_STRENGTH_POOR;
else if (mLteRssnr >= -200)
snrIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
if (DBG) log("getLTELevel - rsrp:" + mLteRsrp + " snr:" + mLteRssnr + " rsrpIconLevel:"
+ rsrpIconLevel + " snrIconLevel:" + snrIconLevel);
/* Choose a measurement type to use for notification */
if (snrIconLevel != -1 && rsrpIconLevel != -1) {
/*
* The number of bars displayed shall be the smaller of the bars
* associated with LTE RSRP and the bars associated with the LTE
* RS_SNR
*/
return (rsrpIconLevel < snrIconLevel ? rsrpIconLevel : snrIconLevel);
}
if (snrIconLevel != -1) return snrIconLevel;
if (rsrpIconLevel != -1) return rsrpIconLevel;
/* Valid values are (0-63, 99) as defined in TS 36.331 */
if (mLteSignalStrength > 63) rssiIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (mLteSignalStrength >= 12) rssiIconLevel = SIGNAL_STRENGTH_GREAT;
else if (mLteSignalStrength >= 8) rssiIconLevel = SIGNAL_STRENGTH_GOOD;
else if (mLteSignalStrength >= 5) rssiIconLevel = SIGNAL_STRENGTH_MODERATE;
else if (mLteSignalStrength >= 0) rssiIconLevel = SIGNAL_STRENGTH_POOR;
if (DBG) log("getLTELevel - rssi:" + mLteSignalStrength + " rssiIconLevel:"
+ rssiIconLevel);
return rssiIconLevel;
|
public int | getLteRsrp()
return mLteRsrp;
|
public int | getLteRsrq()
return mLteRsrq;
|
public int | getLteRssnr()
return mLteRssnr;
|
public int | getLteSignalStrength()
return mLteSignalStrength;
|
public int | hashCode()
int primeNum = 31;
return ((mGsmSignalStrength * primeNum)
+ (mGsmBitErrorRate * primeNum)
+ (mCdmaDbm * primeNum) + (mCdmaEcio * primeNum)
+ (mEvdoDbm * primeNum) + (mEvdoEcio * primeNum) + (mEvdoSnr * primeNum)
+ (mLteSignalStrength * primeNum) + (mLteRsrp * primeNum)
+ (mLteRsrq * primeNum) + (mLteRssnr * primeNum) + (mLteCqi * primeNum)
+ (isGsm ? 1 : 0));
|
public void | initialize(int gsmSignalStrength, int gsmBitErrorRate, int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr, boolean gsm)Initialize gsm/cdma values, sets lte values to defaults.
initialize(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio,
evdoDbm, evdoEcio, evdoSnr, 99, INVALID,
INVALID, INVALID, INVALID, gsm);
|
public void | initialize(int gsmSignalStrength, int gsmBitErrorRate, int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr, int lteSignalStrength, int lteRsrp, int lteRsrq, int lteRssnr, int lteCqi, boolean gsm)Initialize all the values
mGsmSignalStrength = gsmSignalStrength;
mGsmBitErrorRate = gsmBitErrorRate;
mCdmaDbm = cdmaDbm;
mCdmaEcio = cdmaEcio;
mEvdoDbm = evdoDbm;
mEvdoEcio = evdoEcio;
mEvdoSnr = evdoSnr;
mLteSignalStrength = lteSignalStrength;
mLteRsrp = lteRsrp;
mLteRsrq = lteRsrq;
mLteRssnr = lteRssnr;
mLteCqi = lteCqi;
isGsm = gsm;
if (DBG) log("initialize: " + toString());
|
public boolean | isGsm()
return this.isGsm;
|
private static void | log(java.lang.String s)log
Rlog.w(LOG_TAG, s);
|
public static android.telephony.SignalStrength | makeSignalStrengthFromRilParcel(android.os.Parcel in)Make a SignalStrength object from the given parcel as passed up by
the ril which does not have isGsm. isGsm will be changed by ServiceStateTracker
so the default is a don't care.
if (DBG) log("Size of signalstrength parcel:" + in.dataSize());
SignalStrength ss = new SignalStrength();
ss.mGsmSignalStrength = in.readInt();
ss.mGsmBitErrorRate = in.readInt();
ss.mCdmaDbm = in.readInt();
ss.mCdmaEcio = in.readInt();
ss.mEvdoDbm = in.readInt();
ss.mEvdoEcio = in.readInt();
ss.mEvdoSnr = in.readInt();
ss.mLteSignalStrength = in.readInt();
ss.mLteRsrp = in.readInt();
ss.mLteRsrq = in.readInt();
ss.mLteRssnr = in.readInt();
ss.mLteCqi = in.readInt();
return ss;
|
public static android.telephony.SignalStrength | newFromBundle(android.os.Bundle m)Create a new SignalStrength from a intent notifier Bundle
This method is used by PhoneStateIntentReceiver and maybe by
external applications. // This value is set by the ServiceStateTracker onSignalStrengthResult
SignalStrength ret;
ret = new SignalStrength();
ret.setFromNotifierBundle(m);
return ret;
|
private void | setFromNotifierBundle(android.os.Bundle m)Set SignalStrength based on intent notifier map
mGsmSignalStrength = m.getInt("GsmSignalStrength");
mGsmBitErrorRate = m.getInt("GsmBitErrorRate");
mCdmaDbm = m.getInt("CdmaDbm");
mCdmaEcio = m.getInt("CdmaEcio");
mEvdoDbm = m.getInt("EvdoDbm");
mEvdoEcio = m.getInt("EvdoEcio");
mEvdoSnr = m.getInt("EvdoSnr");
mLteSignalStrength = m.getInt("LteSignalStrength");
mLteRsrp = m.getInt("LteRsrp");
mLteRsrq = m.getInt("LteRsrq");
mLteRssnr = m.getInt("LteRssnr");
mLteCqi = m.getInt("LteCqi");
isGsm = m.getBoolean("isGsm");
|
public void | setGsm(boolean gsmFlag)
isGsm = gsmFlag;
|
public java.lang.String | toString()
return ("SignalStrength:"
+ " " + mGsmSignalStrength
+ " " + mGsmBitErrorRate
+ " " + mCdmaDbm
+ " " + mCdmaEcio
+ " " + mEvdoDbm
+ " " + mEvdoEcio
+ " " + mEvdoSnr
+ " " + mLteSignalStrength
+ " " + mLteRsrp
+ " " + mLteRsrq
+ " " + mLteRssnr
+ " " + mLteCqi
+ " " + (isGsm ? "gsm|lte" : "cdma"));
|
public void | validateInput()Validate the individual signal strength fields as per the range
specified in ril.h
Set to invalid any field that is not in the valid range
Cdma, evdo, lte rsrp & rsrq values are sign converted
when received from ril interface
if (DBG) log("Signal before validate=" + this);
// TS 27.007 8.5
mGsmSignalStrength = mGsmSignalStrength >= 0 ? mGsmSignalStrength : 99;
// BER no change;
mCdmaDbm = mCdmaDbm > 0 ? -mCdmaDbm : -120;
mCdmaEcio = (mCdmaEcio > 0) ? -mCdmaEcio : -160;
mEvdoDbm = (mEvdoDbm > 0) ? -mEvdoDbm : -120;
mEvdoEcio = (mEvdoEcio >= 0) ? -mEvdoEcio : -1;
mEvdoSnr = ((mEvdoSnr > 0) && (mEvdoSnr <= 8)) ? mEvdoSnr : -1;
// TS 36.214 Physical Layer Section 5.1.3, TS 36.331 RRC
mLteSignalStrength = (mLteSignalStrength >= 0) ? mLteSignalStrength : 99;
mLteRsrp = ((mLteRsrp >= 44) && (mLteRsrp <= 140)) ? -mLteRsrp : SignalStrength.INVALID;
mLteRsrq = ((mLteRsrq >= 3) && (mLteRsrq <= 20)) ? -mLteRsrq : SignalStrength.INVALID;
mLteRssnr = ((mLteRssnr >= -200) && (mLteRssnr <= 300)) ? mLteRssnr
: SignalStrength.INVALID;
// Cqi no change
if (DBG) log("Signal after validate=" + this);
|
public void | writeToParcel(android.os.Parcel out, int flags){@link Parcelable#writeToParcel}
out.writeInt(mGsmSignalStrength);
out.writeInt(mGsmBitErrorRate);
out.writeInt(mCdmaDbm);
out.writeInt(mCdmaEcio);
out.writeInt(mEvdoDbm);
out.writeInt(mEvdoEcio);
out.writeInt(mEvdoSnr);
out.writeInt(mLteSignalStrength);
out.writeInt(mLteRsrp);
out.writeInt(mLteRsrq);
out.writeInt(mLteRssnr);
out.writeInt(mLteCqi);
out.writeInt(isGsm ? 1 : 0);
|