diff options
| -rw-r--r-- | api/current.txt | 11 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/ScanResult.java | 96 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiInfo.java | 45 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/ScanResultTest.java | 34 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/WifiInfoTest.java | 2 |
5 files changed, 122 insertions, 66 deletions
diff --git a/api/current.txt b/api/current.txt index 1d46d3c30acc..55983c86ee4b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -29786,6 +29786,7 @@ package android.net.wifi { public class ScanResult implements android.os.Parcelable { method public int describeContents(); + method public int getWifiStandard(); method public boolean is80211mcResponder(); method public boolean isPasspointNetwork(); method public void writeToParcel(android.os.Parcel, int); @@ -29796,6 +29797,11 @@ package android.net.wifi { field public static final int CHANNEL_WIDTH_80MHZ = 2; // 0x2 field public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; // 0x4 field public String SSID; + field public static final int WIFI_STANDARD_11AC = 5; // 0x5 + field public static final int WIFI_STANDARD_11AX = 6; // 0x6 + field public static final int WIFI_STANDARD_11N = 4; // 0x4 + field public static final int WIFI_STANDARD_LEGACY = 1; // 0x1 + field public static final int WIFI_STANDARD_UNKNOWN = 0; // 0x0 field public String capabilities; field public int centerFreq0; field public int centerFreq1; @@ -29997,11 +30003,6 @@ package android.net.wifi { field public static final String FREQUENCY_UNITS = "MHz"; field public static final String LINK_SPEED_UNITS = "Mbps"; field public static final int LINK_SPEED_UNKNOWN = -1; // 0xffffffff - field public static final int WIFI_STANDARD_11AC = 5; // 0x5 - field public static final int WIFI_STANDARD_11AX = 6; // 0x6 - field public static final int WIFI_STANDARD_11N = 4; // 0x4 - field public static final int WIFI_STANDARD_LEGACY = 1; // 0x1 - field public static final int WIFI_STANDARD_UNKNOWN = 0; // 0x0 } public class WifiManager { diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java index ac86778f068f..aa895a61df9b 100644 --- a/wifi/java/android/net/wifi/ScanResult.java +++ b/wifi/java/android/net/wifi/ScanResult.java @@ -16,11 +16,15 @@ package android.net.wifi; +import android.annotation.IntDef; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -223,11 +227,86 @@ public class ScanResult implements Parcelable { */ public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; - /** - * AP Channel bandwidth; one of {@link #CHANNEL_WIDTH_20MHZ}, {@link #CHANNEL_WIDTH_40MHZ}, - * {@link #CHANNEL_WIDTH_80MHZ}, {@link #CHANNEL_WIDTH_160MHZ} - * or {@link #CHANNEL_WIDTH_80MHZ_PLUS_MHZ}. - */ + /** + * Wi-Fi unknown standard + */ + public static final int WIFI_STANDARD_UNKNOWN = 0; + + /** + * Wi-Fi 802.11a/b/g + */ + public static final int WIFI_STANDARD_LEGACY = 1; + + /** + * Wi-Fi 802.11n + */ + public static final int WIFI_STANDARD_11N = 4; + + /** + * Wi-Fi 802.11ac + */ + public static final int WIFI_STANDARD_11AC = 5; + + /** + * Wi-Fi 802.11ax + */ + public static final int WIFI_STANDARD_11AX = 6; + + /** @hide */ + @IntDef(prefix = { "WIFI_STANDARD_" }, value = { + WIFI_STANDARD_UNKNOWN, + WIFI_STANDARD_LEGACY, + WIFI_STANDARD_11N, + WIFI_STANDARD_11AC, + WIFI_STANDARD_11AX + }) + @Retention(RetentionPolicy.SOURCE) + public @interface WifiStandard{} + + /** + * AP wifi standard. + */ + private @WifiStandard int mWifiStandard; + + /** + * return the AP wifi standard. + */ + public @WifiStandard int getWifiStandard() { + return mWifiStandard; + } + + /** + * sets the AP wifi standard. + * @hide + */ + public void setWifiStandard(@WifiStandard int standard) { + mWifiStandard = standard; + } + + /** + * Convert Wi-Fi standard to string + */ + private static @Nullable String wifiStandardToString(@WifiStandard int standard) { + switch(standard) { + case WIFI_STANDARD_LEGACY: + return "legacy"; + case WIFI_STANDARD_11N: + return "11n"; + case WIFI_STANDARD_11AC: + return "11ac"; + case WIFI_STANDARD_11AX: + return "11ax"; + case WIFI_STANDARD_UNKNOWN: + return "unknown"; + } + return null; + } + + /** + * AP Channel bandwidth; one of {@link #CHANNEL_WIDTH_20MHZ}, {@link #CHANNEL_WIDTH_40MHZ}, + * {@link #CHANNEL_WIDTH_80MHZ}, {@link #CHANNEL_WIDTH_160MHZ} + * or {@link #CHANNEL_WIDTH_80MHZ_PLUS_MHZ}. + */ public int channelWidth; /** @@ -549,6 +628,7 @@ public class ScanResult implements Parcelable { this.carrierApEapType = UNSPECIFIED; this.carrierName = null; this.radioChainInfos = null; + this.mWifiStandard = WIFI_STANDARD_UNKNOWN; } /** {@hide} */ @@ -571,6 +651,7 @@ public class ScanResult implements Parcelable { this.carrierApEapType = UNSPECIFIED; this.carrierName = null; this.radioChainInfos = null; + this.mWifiStandard = WIFI_STANDARD_UNKNOWN; } /** {@hide} */ @@ -600,6 +681,7 @@ public class ScanResult implements Parcelable { this.carrierApEapType = UNSPECIFIED; this.carrierName = null; this.radioChainInfos = null; + this.mWifiStandard = WIFI_STANDARD_UNKNOWN; } /** {@hide} */ @@ -641,6 +723,7 @@ public class ScanResult implements Parcelable { carrierApEapType = source.carrierApEapType; carrierName = source.carrierName; radioChainInfos = source.radioChainInfos; + this.mWifiStandard = source.mWifiStandard; } } @@ -679,6 +762,7 @@ public class ScanResult implements Parcelable { sb.append(", ChannelBandwidth: ").append(channelWidth); sb.append(", centerFreq0: ").append(centerFreq0); sb.append(", centerFreq1: ").append(centerFreq1); + sb.append(", standard: ").append(wifiStandardToString(mWifiStandard)); sb.append(", 80211mcResponder: "); sb.append(((flags & FLAG_80211mc_RESPONDER) != 0) ? "is supported" : "is not supported"); sb.append(", Carrier AP: ").append(isCarrierAp ? "yes" : "no"); @@ -714,6 +798,7 @@ public class ScanResult implements Parcelable { dest.writeInt(channelWidth); dest.writeInt(centerFreq0); dest.writeInt(centerFreq1); + dest.writeInt(mWifiStandard); dest.writeLong(seen); dest.writeInt(untrusted ? 1 : 0); dest.writeInt(numUsage); @@ -796,6 +881,7 @@ public class ScanResult implements Parcelable { fixed with flags below */ ); + sr.mWifiStandard = in.readInt(); sr.seen = in.readLong(); sr.untrusted = in.readInt() != 0; sr.numUsage = in.readInt(); diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java index 9de39edff38c..86e51227575b 100644 --- a/wifi/java/android/net/wifi/WifiInfo.java +++ b/wifi/java/android/net/wifi/WifiInfo.java @@ -16,7 +16,6 @@ package android.net.wifi; -import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.Nullable; import android.annotation.SystemApi; @@ -28,8 +27,6 @@ import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; import java.net.Inet4Address; import java.net.InetAddress; import java.net.UnknownHostException; @@ -99,45 +96,9 @@ public class WifiInfo implements Parcelable { private int mRssi; /** - * Wi-Fi unknown standard - */ - public static final int WIFI_STANDARD_UNKNOWN = 0; - - /** - * Wi-Fi 802.11a/b/g - */ - public static final int WIFI_STANDARD_LEGACY = 1; - - /** - * Wi-Fi 802.11n - */ - public static final int WIFI_STANDARD_11N = 4; - - /** - * Wi-Fi 802.11ac - */ - public static final int WIFI_STANDARD_11AC = 5; - - /** - * Wi-Fi 802.11ax - */ - public static final int WIFI_STANDARD_11AX = 6; - - /** @hide */ - @IntDef(prefix = { "WIFI_STANDARD_" }, value = { - WIFI_STANDARD_UNKNOWN, - WIFI_STANDARD_LEGACY, - WIFI_STANDARD_11N, - WIFI_STANDARD_11AC, - WIFI_STANDARD_11AX - }) - @Retention(RetentionPolicy.SOURCE) - public @interface WifiStandard{} - - /** * Wi-Fi standard for the connection */ - private @WifiStandard int mWifiStandard; + private @ScanResult.WifiStandard int mWifiStandard; /** * The unit in which links speeds are expressed. @@ -422,7 +383,7 @@ public class WifiInfo implements Parcelable { * Sets the Wi-Fi standard * @hide */ - public void setWifiStandard(@WifiStandard int wifiStandard) { + public void setWifiStandard(@ScanResult.WifiStandard int wifiStandard) { mWifiStandard = wifiStandard; } @@ -430,7 +391,7 @@ public class WifiInfo implements Parcelable { * Get connection Wi-Fi standard * @return the connection Wi-Fi standard */ - public @WifiStandard int getWifiStandard() { + public @ScanResult.WifiStandard int getWifiStandard() { return mWifiStandard; } diff --git a/wifi/tests/src/android/net/wifi/ScanResultTest.java b/wifi/tests/src/android/net/wifi/ScanResultTest.java index 4973c4cd37fd..b5c74d1d01b1 100644 --- a/wifi/tests/src/android/net/wifi/ScanResultTest.java +++ b/wifi/tests/src/android/net/wifi/ScanResultTest.java @@ -42,6 +42,8 @@ public class ScanResultTest { public static final int TEST_LEVEL = -56; public static final int TEST_FREQUENCY = 2412; public static final long TEST_TSF = 04660l; + public static final @ScanResult.WifiStandard int TEST_WIFI_STANDARD = + ScanResult.WIFI_STANDARD_11AC; /** * Setup before tests. @@ -149,12 +151,14 @@ public class ScanResultTest { @Test public void verifyScanResultToStringWithoutRadioChainInfo() throws Exception { ScanResult scanResult = createScanResult(); - assertEquals("SSID: \"test_ssid\", BSSID: 04:ac:fe:45:34:10, capabilities: CCMP, " + - "level: -56, frequency: 2412, timestamp: 2480, distance: 0(cm), distanceSd: 0(cm), " + - "passpoint: no, ChannelBandwidth: 0, centerFreq0: 0, centerFreq1: 0, " + - "80211mcResponder: is not supported, Carrier AP: no, " + - "Carrier AP EAP Type: 0, Carrier name: null, " + - "Radio Chain Infos: null", scanResult.toString()); + assertEquals("SSID: \"test_ssid\", BSSID: 04:ac:fe:45:34:10, capabilities: CCMP, " + + "level: -56, frequency: 2412, timestamp: 2480, " + + "distance: 0(cm), distanceSd: 0(cm), " + + "passpoint: no, ChannelBandwidth: 0, centerFreq0: 0, centerFreq1: 0, " + + "standard: 11ac, " + + "80211mcResponder: is not supported, Carrier AP: no, " + + "Carrier AP EAP Type: 0, Carrier name: null, " + + "Radio Chain Infos: null", scanResult.toString()); } /** @@ -170,13 +174,15 @@ public class ScanResultTest { scanResult.radioChainInfos[1] = new ScanResult.RadioChainInfo(); scanResult.radioChainInfos[1].id = 1; scanResult.radioChainInfos[1].level = -54; - assertEquals("SSID: \"test_ssid\", BSSID: 04:ac:fe:45:34:10, capabilities: CCMP, " + - "level: -56, frequency: 2412, timestamp: 2480, distance: 0(cm), distanceSd: 0(cm), " + - "passpoint: no, ChannelBandwidth: 0, centerFreq0: 0, centerFreq1: 0, " + - "80211mcResponder: is not supported, Carrier AP: no, " + - "Carrier AP EAP Type: 0, Carrier name: null, " + - "Radio Chain Infos: [RadioChainInfo: id=0, level=-45, " + - "RadioChainInfo: id=1, level=-54]", scanResult.toString()); + assertEquals("SSID: \"test_ssid\", BSSID: 04:ac:fe:45:34:10, capabilities: CCMP, " + + "level: -56, frequency: 2412, timestamp: 2480, distance: 0(cm), " + + "distanceSd: 0(cm), " + + "passpoint: no, ChannelBandwidth: 0, centerFreq0: 0, centerFreq1: 0, " + + "standard: 11ac, " + + "80211mcResponder: is not supported, Carrier AP: no, " + + "Carrier AP EAP Type: 0, Carrier name: null, " + + "Radio Chain Infos: [RadioChainInfo: id=0, level=-45, " + + "RadioChainInfo: id=1, level=-54]", scanResult.toString()); } /** @@ -197,6 +203,7 @@ public class ScanResultTest { result.level = TEST_LEVEL; result.frequency = TEST_FREQUENCY; result.timestamp = TEST_TSF; + result.setWifiStandard(TEST_WIFI_STANDARD); return result; } @@ -207,6 +214,7 @@ public class ScanResultTest { assertEquals(expected.level, actual.level); assertEquals(expected.frequency, actual.frequency); assertEquals(expected.timestamp, actual.timestamp); + assertEquals(expected.getWifiStandard(), actual.getWifiStandard()); assertArrayEquals(expected.radioChainInfos, actual.radioChainInfos); assertArrayEquals(expected.informationElements, actual.informationElements); } diff --git a/wifi/tests/src/android/net/wifi/WifiInfoTest.java b/wifi/tests/src/android/net/wifi/WifiInfoTest.java index b98cdc3b4121..22a5faaac112 100644 --- a/wifi/tests/src/android/net/wifi/WifiInfoTest.java +++ b/wifi/tests/src/android/net/wifi/WifiInfoTest.java @@ -38,7 +38,7 @@ public class WifiInfoTest { private static final String TEST_PACKAGE_NAME = "com.test.example"; private static final String TEST_FQDN = "test.com"; private static final String TEST_PROVIDER_NAME = "test"; - private static final int TEST_WIFI_STANDARD = WifiInfo.WIFI_STANDARD_11AC; + private static final int TEST_WIFI_STANDARD = ScanResult.WIFI_STANDARD_11AC; /** * Verify parcel write/read with WifiInfo. |