• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.compat.annotation.UnsupportedAppUsage;
20 import android.os.Parcel;
21 
22 /**
23  *  Class that represents useful attributes of mobile network links
24  *  such as the upload/download throughput or error rate etc.
25  *  @hide
26  */
27 public class MobileLinkQualityInfo extends LinkQualityInfo {
28     // Represents TelephonyManager.NetworkType
29     private int mMobileNetworkType = UNKNOWN_INT;
30     private int mRssi = UNKNOWN_INT;
31     private int mGsmErrorRate = UNKNOWN_INT;
32     private int mCdmaDbm = UNKNOWN_INT;
33     private int mCdmaEcio = UNKNOWN_INT;
34     private int mEvdoDbm = UNKNOWN_INT;
35     private int mEvdoEcio = UNKNOWN_INT;
36     private int mEvdoSnr = UNKNOWN_INT;
37     private int mLteSignalStrength = UNKNOWN_INT;
38     private int mLteRsrp = UNKNOWN_INT;
39     private int mLteRsrq = UNKNOWN_INT;
40     private int mLteRssnr = UNKNOWN_INT;
41     private int mLteCqi = UNKNOWN_INT;
42 
43     @UnsupportedAppUsage
MobileLinkQualityInfo()44     public MobileLinkQualityInfo() {
45     }
46 
47     /**
48      * Implement the Parcelable interface.
49      * @hide
50      */
51     @Override
writeToParcel(Parcel dest, int flags)52     public void writeToParcel(Parcel dest, int flags) {
53         super.writeToParcel(dest, flags, OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO);
54 
55         dest.writeInt(mMobileNetworkType);
56         dest.writeInt(mRssi);
57         dest.writeInt(mGsmErrorRate);
58         dest.writeInt(mCdmaDbm);
59         dest.writeInt(mCdmaEcio);
60         dest.writeInt(mEvdoDbm);
61         dest.writeInt(mEvdoEcio);
62         dest.writeInt(mEvdoSnr);
63         dest.writeInt(mLteSignalStrength);
64         dest.writeInt(mLteRsrp);
65         dest.writeInt(mLteRsrq);
66         dest.writeInt(mLteRssnr);
67         dest.writeInt(mLteCqi);
68     }
69 
70     /* Un-parceling helper */
71     /**
72      * @hide
73      */
createFromParcelBody(Parcel in)74     public static MobileLinkQualityInfo createFromParcelBody(Parcel in) {
75 
76         MobileLinkQualityInfo li = new MobileLinkQualityInfo();
77 
78         li.initializeFromParcel(in);
79 
80         li.mMobileNetworkType = in.readInt();
81         li.mRssi = in.readInt();
82         li.mGsmErrorRate = in.readInt();
83         li.mCdmaDbm = in.readInt();
84         li.mCdmaEcio = in.readInt();
85         li.mEvdoDbm = in.readInt();
86         li.mEvdoEcio = in.readInt();
87         li.mEvdoSnr = in.readInt();
88         li.mLteSignalStrength = in.readInt();
89         li.mLteRsrp = in.readInt();
90         li.mLteRsrq = in.readInt();
91         li.mLteRssnr = in.readInt();
92         li.mLteCqi = in.readInt();
93 
94         return li;
95     }
96 
97     /**
98      * returns mobile network type as defined by {@link android.telephony.TelephonyManager}
99      * @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
100      */
101     @UnsupportedAppUsage
getMobileNetworkType()102     public int getMobileNetworkType() {
103         return mMobileNetworkType;
104     }
105 
106     /**
107      * @hide
108      */
109     @UnsupportedAppUsage
setMobileNetworkType(int mobileNetworkType)110     public void setMobileNetworkType(int mobileNetworkType) {
111         mMobileNetworkType = mobileNetworkType;
112     }
113 
114     /**
115      * returns signal strength for GSM networks
116      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
117      */
getRssi()118     public int getRssi() {
119         return mRssi;
120     }
121 
122     /**
123      * @hide
124      */
125     @UnsupportedAppUsage
setRssi(int Rssi)126     public void setRssi(int Rssi) {
127         mRssi = Rssi;
128     }
129 
130     /**
131      * returns error rates for GSM networks
132      * @return error rate or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
133      */
getGsmErrorRate()134     public int getGsmErrorRate() {
135         return mGsmErrorRate;
136     }
137 
138     /**
139      * @hide
140      */
141     @UnsupportedAppUsage
setGsmErrorRate(int gsmErrorRate)142     public void setGsmErrorRate(int gsmErrorRate) {
143         mGsmErrorRate = gsmErrorRate;
144     }
145 
146     /**
147      * returns signal strength for CDMA networks
148      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
149      */
getCdmaDbm()150     public int getCdmaDbm() {
151         return mCdmaDbm;
152     }
153 
154     /**
155      * @hide
156      */
157     @UnsupportedAppUsage
setCdmaDbm(int cdmaDbm)158     public void setCdmaDbm(int cdmaDbm) {
159         mCdmaDbm = cdmaDbm;
160     }
161 
162     /**
163      * returns signal to noise ratio for CDMA networks
164      * @return signal to noise ratio in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
165      */
getCdmaEcio()166     public int getCdmaEcio() {
167         return mCdmaEcio;
168     }
169 
170     /**
171      * @hide
172      */
173     @UnsupportedAppUsage
setCdmaEcio(int cdmaEcio)174     public void setCdmaEcio(int cdmaEcio) {
175         mCdmaEcio = cdmaEcio;
176     }
177 
178     /**
179      * returns signal strength for EVDO networks
180      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
181      */
getEvdoDbm()182     public int getEvdoDbm() {
183         return mEvdoDbm;
184     }
185 
186     /**
187      * @hide
188      */
189     @UnsupportedAppUsage
setEvdoDbm(int evdoDbm)190     public void setEvdoDbm(int evdoDbm) {
191         mEvdoDbm = evdoDbm;
192     }
193 
194     /**
195      * returns signal to noise ratio for EVDO spectrum
196      * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
197      */
getEvdoEcio()198     public int getEvdoEcio() {
199         return mEvdoEcio;
200     }
201 
202     /**
203      * @hide
204      */
205     @UnsupportedAppUsage
setEvdoEcio(int evdoEcio)206     public void setEvdoEcio(int evdoEcio) {
207         mEvdoEcio = evdoEcio;
208     }
209 
210     /**
211      * returns end-to-end signal to noise ratio for EVDO networks
212      * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
213      */
getEvdoSnr()214     public int getEvdoSnr() {
215         return mEvdoSnr;
216     }
217 
218     /**
219      * @hide
220      */
221     @UnsupportedAppUsage
setEvdoSnr(int evdoSnr)222     public void setEvdoSnr(int evdoSnr) {
223         mEvdoSnr = evdoSnr;
224     }
225 
226     /**
227      * returns signal strength for LTE network
228      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
229      */
getLteSignalStrength()230     public int getLteSignalStrength() {
231         return mLteSignalStrength;
232     }
233 
234     /**
235      * @hide
236      */
237     @UnsupportedAppUsage
setLteSignalStrength(int lteSignalStrength)238     public void setLteSignalStrength(int lteSignalStrength) {
239         mLteSignalStrength = lteSignalStrength;
240     }
241 
242     /**
243      * returns RSRP (Reference Signal Received Power) for LTE network
244      * @return RSRP in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
245      */
getLteRsrp()246     public int getLteRsrp() {
247         return mLteRsrp;
248     }
249 
250     /**
251      * @hide
252      */
253     @UnsupportedAppUsage
setLteRsrp(int lteRsrp)254     public void setLteRsrp(int lteRsrp) {
255         mLteRsrp = lteRsrp;
256     }
257 
258     /**
259      * returns RSRQ (Reference Signal Received Quality) for LTE network
260      * @return RSRQ ??? or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
261      */
getLteRsrq()262     public int getLteRsrq() {
263         return mLteRsrq;
264     }
265 
266     /**
267      * @hide
268      */
269     @UnsupportedAppUsage
setLteRsrq(int lteRsrq)270     public void setLteRsrq(int lteRsrq) {
271         mLteRsrq = lteRsrq;
272     }
273 
274     /**
275      * returns signal to noise ratio for LTE networks
276      * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
277      */
getLteRssnr()278     public int getLteRssnr() {
279         return mLteRssnr;
280     }
281 
282     /**
283      * @hide
284      */
285     @UnsupportedAppUsage
setLteRssnr(int lteRssnr)286     public void setLteRssnr(int lteRssnr) {
287         mLteRssnr = lteRssnr;
288     }
289 
290     /**
291      * returns channel quality indicator for LTE networks
292      * @return CQI or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
293      */
getLteCqi()294     public int getLteCqi() {
295         return mLteCqi;
296     }
297 
298     /**
299      * @hide
300      */
301     @UnsupportedAppUsage
setLteCqi(int lteCqi)302     public void setLteCqi(int lteCqi) {
303         mLteCqi = lteCqi;
304     }
305 }
306