blob: a01fc8006a133a5f37fbeb9fbb1f60fe87ffbeb4 [file] [log] [blame]
Vinit Deshapnde6a2d3252013-09-04 14:11:24 -07001/*
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
17package android.net;
18
19import 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 */
26public 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
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 */
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 */
96 public int getMobileNetworkType() {
97 return mMobileNetworkType;
98 }
99
100 /**
101 * @hide
102 */
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 */
111 public int getRssi() {
112 return mRssi;
113 }
114
115 /**
116 * @hide
117 */
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 */
126 public int getGsmErrorRate() {
127 return mGsmErrorRate;
128 }
129
130 /**
131 * @hide
132 */
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 */
141 public int getCdmaDbm() {
142 return mCdmaDbm;
143 }
144
145 /**
146 * @hide
147 */
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 */
156 public int getCdmaEcio() {
157 return mCdmaEcio;
158 }
159
160 /**
161 * @hide
162 */
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 */
171 public int getEvdoDbm() {
172 return mEvdoDbm;
173 }
174
175 /**
176 * @hide
177 */
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 */
186 public int getEvdoEcio() {
187 return mEvdoEcio;
188 }
189
190 /**
191 * @hide
192 */
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 */
201 public int getEvdoSnr() {
202 return mEvdoSnr;
203 }
204
205 /**
206 * @hide
207 */
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 */
216 public int getLteSignalStrength() {
217 return mLteSignalStrength;
218 }
219
220 /**
221 * @hide
222 */
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 */
231 public int getLteRsrp() {
232 return mLteRsrp;
233 }
234
235 /**
236 * @hide
237 */
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 */
246 public int getLteRsrq() {
247 return mLteRsrq;
248 }
249
250 /**
251 * @hide
252 */
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 */
261 public int getLteRssnr() {
262 return mLteRssnr;
263 }
264
265 /**
266 * @hide
267 */
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 */
276 public int getLteCqi() {
277 return mLteCqi;
278 }
279
280 /**
281 * @hide
282 */
283 public void setLteCqi(int lteCqi) {
284 mLteCqi = lteCqi;
285 }
286}