1 /* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.net; 18 19 import android.os.Parcel; 20 21 /** 22 * Class that represents useful attributes of mobile network links 23 * such as the upload/download throughput or error rate etc. 24 * @hide 25 */ 26 public class MobileLinkQualityInfo extends LinkQualityInfo { 27 // Represents TelephonyManager.NetworkType 28 private int mMobileNetworkType = UNKNOWN_INT; 29 private int mRssi = UNKNOWN_INT; 30 private int mGsmErrorRate = UNKNOWN_INT; 31 private int mCdmaDbm = UNKNOWN_INT; 32 private int mCdmaEcio = UNKNOWN_INT; 33 private int mEvdoDbm = UNKNOWN_INT; 34 private int mEvdoEcio = UNKNOWN_INT; 35 private int mEvdoSnr = UNKNOWN_INT; 36 private int mLteSignalStrength = UNKNOWN_INT; 37 private int mLteRsrp = UNKNOWN_INT; 38 private int mLteRsrq = UNKNOWN_INT; 39 private int mLteRssnr = UNKNOWN_INT; 40 private int mLteCqi = UNKNOWN_INT; 41 42 /** 43 * Implement the Parcelable interface. 44 * @hide 45 */ 46 @Override writeToParcel(Parcel dest, int flags)47 public void writeToParcel(Parcel dest, int flags) { 48 super.writeToParcel(dest, flags, OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO); 49 50 dest.writeInt(mMobileNetworkType); 51 dest.writeInt(mRssi); 52 dest.writeInt(mGsmErrorRate); 53 dest.writeInt(mCdmaDbm); 54 dest.writeInt(mCdmaEcio); 55 dest.writeInt(mEvdoDbm); 56 dest.writeInt(mEvdoEcio); 57 dest.writeInt(mEvdoSnr); 58 dest.writeInt(mLteSignalStrength); 59 dest.writeInt(mLteRsrp); 60 dest.writeInt(mLteRsrq); 61 dest.writeInt(mLteRssnr); 62 dest.writeInt(mLteCqi); 63 } 64 65 /* Un-parceling helper */ 66 /** 67 * @hide 68 */ createFromParcelBody(Parcel in)69 public static MobileLinkQualityInfo createFromParcelBody(Parcel in) { 70 71 MobileLinkQualityInfo li = new MobileLinkQualityInfo(); 72 73 li.initializeFromParcel(in); 74 75 li.mMobileNetworkType = in.readInt(); 76 li.mRssi = in.readInt(); 77 li.mGsmErrorRate = in.readInt(); 78 li.mCdmaDbm = in.readInt(); 79 li.mCdmaEcio = in.readInt(); 80 li.mEvdoDbm = in.readInt(); 81 li.mEvdoEcio = in.readInt(); 82 li.mEvdoSnr = in.readInt(); 83 li.mLteSignalStrength = in.readInt(); 84 li.mLteRsrp = in.readInt(); 85 li.mLteRsrq = in.readInt(); 86 li.mLteRssnr = in.readInt(); 87 li.mLteCqi = in.readInt(); 88 89 return li; 90 } 91 92 /** 93 * returns mobile network type as defined by {@link android.telephony.TelephonyManager} 94 * @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 95 */ getMobileNetworkType()96 public int getMobileNetworkType() { 97 return mMobileNetworkType; 98 } 99 100 /** 101 * @hide 102 */ setMobileNetworkType(int mobileNetworkType)103 public void setMobileNetworkType(int mobileNetworkType) { 104 mMobileNetworkType = mobileNetworkType; 105 } 106 107 /** 108 * returns signal strength for GSM networks 109 * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 110 */ getRssi()111 public int getRssi() { 112 return mRssi; 113 } 114 115 /** 116 * @hide 117 */ setRssi(int Rssi)118 public void setRssi(int Rssi) { 119 mRssi = Rssi; 120 } 121 122 /** 123 * returns error rates for GSM networks 124 * @return error rate or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 125 */ getGsmErrorRate()126 public int getGsmErrorRate() { 127 return mGsmErrorRate; 128 } 129 130 /** 131 * @hide 132 */ setGsmErrorRate(int gsmErrorRate)133 public void setGsmErrorRate(int gsmErrorRate) { 134 mGsmErrorRate = gsmErrorRate; 135 } 136 137 /** 138 * returns signal strength for CDMA networks 139 * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 140 */ getCdmaDbm()141 public int getCdmaDbm() { 142 return mCdmaDbm; 143 } 144 145 /** 146 * @hide 147 */ setCdmaDbm(int cdmaDbm)148 public void setCdmaDbm(int cdmaDbm) { 149 mCdmaDbm = cdmaDbm; 150 } 151 152 /** 153 * returns signal to noise ratio for CDMA networks 154 * @return signal to noise ratio in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 155 */ getCdmaEcio()156 public int getCdmaEcio() { 157 return mCdmaEcio; 158 } 159 160 /** 161 * @hide 162 */ setCdmaEcio(int cdmaEcio)163 public void setCdmaEcio(int cdmaEcio) { 164 mCdmaEcio = cdmaEcio; 165 } 166 167 /** 168 * returns signal strength for EVDO networks 169 * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 170 */ getEvdoDbm()171 public int getEvdoDbm() { 172 return mEvdoDbm; 173 } 174 175 /** 176 * @hide 177 */ setEvdoDbm(int evdoDbm)178 public void setEvdoDbm(int evdoDbm) { 179 mEvdoDbm = evdoDbm; 180 } 181 182 /** 183 * returns signal to noise ratio for EVDO spectrum 184 * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 185 */ getEvdoEcio()186 public int getEvdoEcio() { 187 return mEvdoEcio; 188 } 189 190 /** 191 * @hide 192 */ setEvdoEcio(int evdoEcio)193 public void setEvdoEcio(int evdoEcio) { 194 mEvdoEcio = evdoEcio; 195 } 196 197 /** 198 * returns end-to-end signal to noise ratio for EVDO networks 199 * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 200 */ getEvdoSnr()201 public int getEvdoSnr() { 202 return mEvdoSnr; 203 } 204 205 /** 206 * @hide 207 */ setEvdoSnr(int evdoSnr)208 public void setEvdoSnr(int evdoSnr) { 209 mEvdoSnr = evdoSnr; 210 } 211 212 /** 213 * returns signal strength for LTE network 214 * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 215 */ getLteSignalStrength()216 public int getLteSignalStrength() { 217 return mLteSignalStrength; 218 } 219 220 /** 221 * @hide 222 */ setLteSignalStrength(int lteSignalStrength)223 public void setLteSignalStrength(int lteSignalStrength) { 224 mLteSignalStrength = lteSignalStrength; 225 } 226 227 /** 228 * returns RSRP (Reference Signal Received Power) for LTE network 229 * @return RSRP in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 230 */ getLteRsrp()231 public int getLteRsrp() { 232 return mLteRsrp; 233 } 234 235 /** 236 * @hide 237 */ setLteRsrp(int lteRsrp)238 public void setLteRsrp(int lteRsrp) { 239 mLteRsrp = lteRsrp; 240 } 241 242 /** 243 * returns RSRQ (Reference Signal Received Quality) for LTE network 244 * @return RSRQ ??? or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 245 */ getLteRsrq()246 public int getLteRsrq() { 247 return mLteRsrq; 248 } 249 250 /** 251 * @hide 252 */ setLteRsrq(int lteRsrq)253 public void setLteRsrq(int lteRsrq) { 254 mLteRsrq = lteRsrq; 255 } 256 257 /** 258 * returns signal to noise ratio for LTE networks 259 * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 260 */ getLteRssnr()261 public int getLteRssnr() { 262 return mLteRssnr; 263 } 264 265 /** 266 * @hide 267 */ setLteRssnr(int lteRssnr)268 public void setLteRssnr(int lteRssnr) { 269 mLteRssnr = lteRssnr; 270 } 271 272 /** 273 * returns channel quality indicator for LTE networks 274 * @return CQI or {@link android.net.LinkQualityInfo#UNKNOWN_INT} 275 */ getLteCqi()276 public int getLteCqi() { 277 return mLteCqi; 278 } 279 280 /** 281 * @hide 282 */ setLteCqi(int lteCqi)283 public void setLteCqi(int lteCqi) { 284 mLteCqi = lteCqi; 285 } 286 } 287