blob: 20ec9a739b5023e5399da841aaa401efd81e1fce [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 wifi network links
23 * such as the upload/download throughput or error rate etc.
24 * @hide
25 */
26public 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}