summaryrefslogtreecommitdiff
path: root/android/net/WifiLinkQualityInfo.java
blob: 20ec9a739b5023e5399da841aaa401efd81e1fce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*
 * 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 wifi network links
 *  such as the upload/download throughput or error rate etc.
 *  @hide
 */
public class WifiLinkQualityInfo extends LinkQualityInfo {

    /* Indicates Wifi network type such as b/g etc*/
    private int  mType = UNKNOWN_INT;

    private String mBssid;

    /* Rssi found by scans */
    private int  mRssi = UNKNOWN_INT;

    /* packet statistics */
    private long mTxGood = UNKNOWN_LONG;
    private long mTxBad = UNKNOWN_LONG;

    /**
     * Implement the Parcelable interface.
     * @hide
     */
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        super.writeToParcel(dest, flags, OBJECT_TYPE_WIFI_LINK_QUALITY_INFO);

        dest.writeInt(mType);
        dest.writeInt(mRssi);
        dest.writeLong(mTxGood);
        dest.writeLong(mTxBad);

        dest.writeString(mBssid);
    }

    /* Un-parceling helper */
    /**
     * @hide
     */
    public static WifiLinkQualityInfo createFromParcelBody(Parcel in) {
        WifiLinkQualityInfo li = new WifiLinkQualityInfo();

        li.initializeFromParcel(in);

        li.mType =  in.readInt();
        li.mRssi =  in.readInt();
        li.mTxGood =  in.readLong();
        li.mTxBad =  in.readLong();

        li.mBssid =  in.readString();

        return li;
    }

    /**
     * returns Wifi network type
     * @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
     */
    public int getType() {
        return mType;
    }

    /**
     * @hide
     */
    public void setType(int type) {
        mType = type;
    }

    /**
     * returns BSSID of the access point
     * @return the BSSID, in the form of a six-byte MAC address: {@code XX:XX:XX:XX:XX:XX} or null
     */
    public String getBssid() {
        return mBssid;
    }

    /**
     * @hide
     */
    public void setBssid(String bssid) {
        mBssid = bssid;
    }

    /**
     * returns RSSI of the network in raw form
     * @return un-normalized RSSI or {@link android.net.LinkQualityInfo#UNKNOWN_INT}
     */
    public int getRssi() {
        return mRssi;
    }

    /**
     * @hide
     */
    public void setRssi(int rssi) {
        mRssi = rssi;
    }

    /**
     * returns number of packets transmitted without error
     * @return number of packets or {@link android.net.LinkQualityInfo#UNKNOWN_LONG}
     */
    public long getTxGood() {
        return mTxGood;
    }

    /**
     * @hide
     */
    public void setTxGood(long txGood) {
        mTxGood = txGood;
    }

    /**
     * returns number of transmitted packets that encountered errors
     * @return number of packets or {@link android.net.LinkQualityInfo#UNKNOWN_LONG}
     */
    public long getTxBad() {
        return mTxBad;
    }

    /**
     * @hide
     */
    public void setTxBad(long txBad) {
        mTxBad = txBad;
    }
}