Home | History | Annotate | Download | only in net
      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 wifi network links
     23  *  such as the upload/download throughput or error rate etc.
     24  *  @hide
     25  */
     26 public class WifiLinkQualityInfo extends LinkQualityInfo {
     27 
     28     /* Indicates Wifi network type such as b/g etc*/
     29     private int  mType = UNKNOWN_INT;
     30 
     31     private String mBssid;
     32 
     33     /* Rssi found by scans */
     34     private int  mRssi = UNKNOWN_INT;
     35 
     36     /* packet statistics */
     37     private long mTxGood = UNKNOWN_LONG;
     38     private long mTxBad = UNKNOWN_LONG;
     39 
     40     /**
     41      * Implement the Parcelable interface.
     42      * @hide
     43      */
     44     @Override
     45     public void writeToParcel(Parcel dest, int flags) {
     46         super.writeToParcel(dest, flags, OBJECT_TYPE_WIFI_LINK_QUALITY_INFO);
     47 
     48         dest.writeInt(mType);
     49         dest.writeInt(mRssi);
     50         dest.writeLong(mTxGood);
     51         dest.writeLong(mTxBad);
     52 
     53         dest.writeString(mBssid);
     54     }
     55 
     56     /* Un-parceling helper */
     57     /**
     58      * @hide
     59      */
     60     public static WifiLinkQualityInfo createFromParcelBody(Parcel in) {
     61         WifiLinkQualityInfo li = new WifiLinkQualityInfo();
     62 
     63         li.initializeFromParcel(in);
     64 
     65         li.mType =  in.readInt();
     66         li.mRssi =  in.readInt();
     67         li.mTxGood =  in.readLong();
     68         li.mTxBad =  in.readLong();
     69 
     70         li.mBssid =  in.readString();
     71 
     72         return li;
     73     }
     74 
     75     /**
     76      * returns Wifi network type
     77      * @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
     78      */
     79     public int getType() {
     80         return mType;
     81     }
     82 
     83     /**
     84      * @hide
     85      */
     86     public void setType(int type) {
     87         mType = type;
     88     }
     89 
     90     /**
     91      * returns BSSID of the access point
     92      * @return the BSSID, in the form of a six-byte MAC address: {@code XX:XX:XX:XX:XX:XX} or null
     93      */
     94     public String getBssid() {
     95         return mBssid;
     96     }
     97 
     98     /**
     99      * @hide
    100      */
    101     public void setBssid(String bssid) {
    102         mBssid = bssid;
    103     }
    104 
    105     /**
    106      * returns RSSI of the network in raw form
    107      * @return un-normalized RSSI or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
    108      */
    109     public int getRssi() {
    110         return mRssi;
    111     }
    112 
    113     /**
    114      * @hide
    115      */
    116     public void setRssi(int rssi) {
    117         mRssi = rssi;
    118     }
    119 
    120     /**
    121      * returns number of packets transmitted without error
    122      * @return number of packets or {@link android.net.LinkQualityInfo#UNKNOWN_LONG}
    123      */
    124     public long getTxGood() {
    125         return mTxGood;
    126     }
    127 
    128     /**
    129      * @hide
    130      */
    131     public void setTxGood(long txGood) {
    132         mTxGood = txGood;
    133     }
    134 
    135     /**
    136      * returns number of transmitted packets that encountered errors
    137      * @return number of packets or {@link android.net.LinkQualityInfo#UNKNOWN_LONG}
    138      */
    139     public long getTxBad() {
    140         return mTxBad;
    141     }
    142 
    143     /**
    144      * @hide
    145      */
    146     public void setTxBad(long txBad) {
    147         mTxBad = txBad;
    148     }
    149 }
    150