/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.net;
import android.os.Parcel;
/**
* Class that represents useful attributes of mobile network links
* such as the upload/download throughput or error rate etc.
* @hide
*/
public class MobileLinkQualityInfo extends LinkQualityInfo {
// Represents TelephonyManager.NetworkType
private int mMobileNetworkType = UNKNOWN_INT;
private int mRssi = UNKNOWN_INT;
private int mGsmErrorRate = UNKNOWN_INT;
private int mCdmaDbm = UNKNOWN_INT;
private int mCdmaEcio = UNKNOWN_INT;
private int mEvdoDbm = UNKNOWN_INT;
private int mEvdoEcio = UNKNOWN_INT;
private int mEvdoSnr = UNKNOWN_INT;
private int mLteSignalStrength = UNKNOWN_INT;
private int mLteRsrp = UNKNOWN_INT;
private int mLteRsrq = UNKNOWN_INT;
private int mLteRssnr = UNKNOWN_INT;
private int mLteCqi = UNKNOWN_INT;
/**
* Implement the Parcelable interface.
* @hide
*/
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags, OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO);
dest.writeInt(mMobileNetworkType);
dest.writeInt(mRssi);
dest.writeInt(mGsmErrorRate);
dest.writeInt(mCdmaDbm);
dest.writeInt(mCdmaEcio);
dest.writeInt(mEvdoDbm);
dest.writeInt(mEvdoEcio);
dest.writeInt(mEvdoSnr);
dest.writeInt(mLteSignalStrength);
dest.writeInt(mLteRsrp);
dest.writeInt(mLteRsrq);
dest.writeInt(mLteRssnr);
dest.writeInt(mLteCqi);
}
/* Un-parceling helper */
/**
* @hide
*/
public static MobileLinkQualityInfo createFromParcelBody(Parcel in) {
MobileLinkQualityInfo li = new MobileLinkQualityInfo();
li.initializeFromParcel(in);
li.mMobileNetworkType = in.readInt();
li.mRssi = in.readInt();
li.mGsmErrorRate = in.readInt();
li.mCdmaDbm = in.readInt();
li.mCdmaEcio = in.readInt();
li.mEvdoDbm = in.readInt();
li.mEvdoEcio = in.readInt();
li.mEvdoSnr = in.readInt();
li.mLteSignalStrength = in.readInt();
li.mLteRsrp = in.readInt();
li.mLteRsrq = in.readInt();
li.mLteRssnr = in.readInt();
li.mLteCqi = in.readInt();
return li;
}
/**
* returns mobile network type as defined by {@link android.telephony.TelephonyManager}
* @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getMobileNetworkType() {
return mMobileNetworkType;
}
/**
* @hide
*/
public void setMobileNetworkType(int mobileNetworkType) {
mMobileNetworkType = mobileNetworkType;
}
/**
* returns signal strength for GSM networks
* @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getRssi() {
return mRssi;
}
/**
* @hide
*/
public void setRssi(int Rssi) {
mRssi = Rssi;
}
/**
* returns error rates for GSM networks
* @return error rate or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getGsmErrorRate() {
return mGsmErrorRate;
}
/**
* @hide
*/
public void setGsmErrorRate(int gsmErrorRate) {
mGsmErrorRate = gsmErrorRate;
}
/**
* returns signal strength for CDMA networks
* @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getCdmaDbm() {
return mCdmaDbm;
}
/**
* @hide
*/
public void setCdmaDbm(int cdmaDbm) {
mCdmaDbm = cdmaDbm;
}
/**
* returns signal to noise ratio for CDMA networks
* @return signal to noise ratio in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getCdmaEcio() {
return mCdmaEcio;
}
/**
* @hide
*/
public void setCdmaEcio(int cdmaEcio) {
mCdmaEcio = cdmaEcio;
}
/**
* returns signal strength for EVDO networks
* @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getEvdoDbm() {
return mEvdoDbm;
}
/**
* @hide
*/
public void setEvdoDbm(int evdoDbm) {
mEvdoDbm = evdoDbm;
}
/**
* returns signal to noise ratio for EVDO spectrum
* @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getEvdoEcio() {
return mEvdoEcio;
}
/**
* @hide
*/
public void setEvdoEcio(int evdoEcio) {
mEvdoEcio = evdoEcio;
}
/**
* returns end-to-end signal to noise ratio for EVDO networks
* @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getEvdoSnr() {
return mEvdoSnr;
}
/**
* @hide
*/
public void setEvdoSnr(int evdoSnr) {
mEvdoSnr = evdoSnr;
}
/**
* returns signal strength for LTE network
* @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getLteSignalStrength() {
return mLteSignalStrength;
}
/**
* @hide
*/
public void setLteSignalStrength(int lteSignalStrength) {
mLteSignalStrength = lteSignalStrength;
}
/**
* returns RSRP (Reference Signal Received Power) for LTE network
* @return RSRP in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getLteRsrp() {
return mLteRsrp;
}
/**
* @hide
*/
public void setLteRsrp(int lteRsrp) {
mLteRsrp = lteRsrp;
}
/**
* returns RSRQ (Reference Signal Received Quality) for LTE network
* @return RSRQ ??? or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getLteRsrq() {
return mLteRsrq;
}
/**
* @hide
*/
public void setLteRsrq(int lteRsrq) {
mLteRsrq = lteRsrq;
}
/**
* returns signal to noise ratio for LTE networks
* @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getLteRssnr() {
return mLteRssnr;
}
/**
* @hide
*/
public void setLteRssnr(int lteRssnr) {
mLteRssnr = lteRssnr;
}
/**
* returns channel quality indicator for LTE networks
* @return CQI or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
*/
public int getLteCqi() {
return mLteCqi;
}
/**
* @hide
*/
public void setLteCqi(int lteCqi) {
mLteCqi = lteCqi;
}
}