diff options
author | 2019-01-14 10:44:49 -0800 | |
---|---|---|
committer | 2019-01-14 10:44:49 -0800 | |
commit | 1ee0a3de13d46f778b7415c0cfd8510f891a5f5a (patch) | |
tree | b668058dab052fffc9fc7edfde88d2ee17bc29b6 | |
parent | ed0c722aadaa07d23fb4acfe5bc840eb3cdb31f6 (diff) | |
parent | b6d32aa5e84748d9b9f51fb11d6efaf4d1e97e66 (diff) |
Merge "Add API to Retrieve Detailed SignalStrength Info"
am: b6d32aa5e8
Change-Id: If51c5da71de6cca894d359dbe877787a4a1e2264
-rwxr-xr-x | api/current.txt | 1 | ||||
-rw-r--r-- | telephony/java/android/telephony/SignalStrength.java | 31 |
2 files changed, 32 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 499978a3aa88..548bc6a26a80 100755 --- a/api/current.txt +++ b/api/current.txt @@ -42732,6 +42732,7 @@ package android.telephony { method public int describeContents(); method public int getCdmaDbm(); method public int getCdmaEcio(); + method public java.util.List<android.telephony.CellSignalStrength> getCellSignalStrengths(); method public int getEvdoDbm(); method public int getEvdoEcio(); method public int getEvdoSnr(); diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index 2271069dddb7..e77042d1930f 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -24,6 +24,8 @@ import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -178,6 +180,35 @@ public class SignalStrength implements Parcelable { return mLte; } + /** + * Returns a List of CellSignalStrength Components of this SignalStrength Report. + * + * Use this API to access underlying + * {@link android.telephony#CellSignalStrength CellSignalStrength} objects that provide more + * granular information about the SignalStrength report. Only valid (non-empty) + * CellSignalStrengths will be returned. The order of any returned elements is not guaranteed, + * and the list may contain more than one instance of a CellSignalStrength type. + * + * @return a List of CellSignalStrength or an empty List if there are no valid measurements. + * + * @see android.telephony#CellSignalStrength + * @see android.telephony#CellSignalStrengthNr + * @see android.telephony#CellSignalStrengthLte + * @see android.telephony#CellSignalStrengthTdscdma + * @see android.telephony#CellSignalStrengthWcdma + * @see android.telephony#CellSignalStrengthCdma + * @see android.telephony#CellSignalStrengthGsm + */ + public @NonNull List<CellSignalStrength> getCellSignalStrengths() { + List<CellSignalStrength> cssList = new ArrayList<>(2); // Usually have 2 or fewer elems + if (mLte.isValid()) cssList.add(mLte); + if (mCdma.isValid()) cssList.add(mCdma); + if (mTdscdma.isValid()) cssList.add(mTdscdma); + if (mWcdma.isValid()) cssList.add(mWcdma); + if (mGsm.isValid()) cssList.add(mGsm); + return cssList; + } + /** @hide */ public void updateLevel(PersistableBundle cc, ServiceState ss) { mLteRsrpBoost = ss.getLteEarfcnRsrpBoost(); |