summaryrefslogtreecommitdiffstats
path: root/wifi/java/android/net/wifi/WifiInfo.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-04-19 23:01:08 -0700
committerJeff Sharkey <jsharkey@android.com>2012-04-20 15:57:19 -0700
commit9f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73f (patch)
treeed8045c7cfb0fcea3c10b0f76d2808116ac1545e /wifi/java/android/net/wifi/WifiInfo.java
parentf0c4c658488824707c206551fd1ccc0a0781031e (diff)
downloadframeworks_base-9f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73f.zip
frameworks_base-9f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73f.tar.gz
frameworks_base-9f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73f.tar.bz2
Connect metered DHCP hint for Wi-Fi networks.
When DHCP lease includes vendor info indicating that remote Wi-Fi network is metered, advise NetworkPolicy. Users can still manually change the metered flag in Settings. Also remove any policies belonging to removed Wi-Fi networks, and teach isNetworkMetered() about ethernet networks. Bug: 6344821, 6369307, 6365872 Change-Id: I108606c6fddf2d02828fcab011f3a1501415f1bc
Diffstat (limited to 'wifi/java/android/net/wifi/WifiInfo.java')
-rw-r--r--wifi/java/android/net/wifi/WifiInfo.java32
1 files changed, 30 insertions, 2 deletions
diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java
index 7bb927b..30e4a20 100644
--- a/wifi/java/android/net/wifi/WifiInfo.java
+++ b/wifi/java/android/net/wifi/WifiInfo.java
@@ -68,9 +68,14 @@ public class WifiInfo implements Parcelable {
private int mLinkSpeed;
private InetAddress mIpAddress;
-
private String mMacAddress;
+ /**
+ * Flag indicating that AP has hinted that upstream connection is metered,
+ * and sensitive to heavy data transfers.
+ */
+ private boolean mMeteredHint;
+
WifiInfo() {
mSSID = null;
mBSSID = null;
@@ -96,6 +101,7 @@ public class WifiInfo implements Parcelable {
mLinkSpeed = source.mLinkSpeed;
mIpAddress = source.mIpAddress;
mMacAddress = source.mMacAddress;
+ mMeteredHint = source.mMeteredHint;
}
}
@@ -168,6 +174,16 @@ public class WifiInfo implements Parcelable {
return mMacAddress;
}
+ /** {@hide} */
+ public void setMeteredHint(boolean meteredHint) {
+ mMeteredHint = meteredHint;
+ }
+
+ /** {@hide} */
+ public boolean getMeteredHint() {
+ return mMeteredHint;
+ }
+
void setNetworkId(int id) {
mNetworkId = id;
}
@@ -248,6 +264,15 @@ public class WifiInfo implements Parcelable {
}
}
+ /** {@hide} */
+ public static String removeDoubleQuotes(String string) {
+ final int length = string.length();
+ if ((length > 1) && (string.charAt(0) == '"') && (string.charAt(length - 1) == '"')) {
+ return string.substring(1, length - 1);
+ }
+ return string;
+ }
+
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
@@ -260,7 +285,8 @@ public class WifiInfo implements Parcelable {
append(mSupplicantState == null ? none : mSupplicantState).
append(", RSSI: ").append(mRssi).
append(", Link speed: ").append(mLinkSpeed).
- append(", Net ID: ").append(mNetworkId);
+ append(", Net ID: ").append(mNetworkId).
+ append(", Metered hint: ").append(mMeteredHint);
return sb.toString();
}
@@ -284,6 +310,7 @@ public class WifiInfo implements Parcelable {
dest.writeString(getSSID());
dest.writeString(mBSSID);
dest.writeString(mMacAddress);
+ dest.writeInt(mMeteredHint ? 1 : 0);
mSupplicantState.writeToParcel(dest, flags);
}
@@ -303,6 +330,7 @@ public class WifiInfo implements Parcelable {
info.setSSID(in.readString());
info.mBSSID = in.readString();
info.mMacAddress = in.readString();
+ info.mMeteredHint = in.readInt() != 0;
info.mSupplicantState = SupplicantState.CREATOR.createFromParcel(in);
return info;
}