summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ahmed ElArabawy <arabawy@google.com> 2020-01-10 12:28:19 -0800
committer Ahmed ElArabawy <arabawy@google.com> 2020-01-19 08:54:39 +0000
commit9b3f07652735ee0ee54701486f76c1e321110794 (patch)
tree489f40c2ee679baf4fdd4817c18faf35b451cb7b
parent5b4390df2427f79b2bd5f264c61acda965236408 (diff)
Wifi: Add a public API to query for supported wifi standards
This commit adds a public API to query for the supported wifi standards. Bug: 143543900 Bug: 134688244 Bug: 144576344 Test: atest com.android.wifi.server Change-Id: I57ac90c7d3473a71435bfb96b19d983ae433082a
-rw-r--r--api/current.txt1
-rw-r--r--wifi/java/android/net/wifi/IWifiManager.aidl2
-rw-r--r--wifi/java/android/net/wifi/WifiManager.java14
-rw-r--r--wifi/java/com/android/server/wifi/BaseWifiService.java5
-rw-r--r--wifi/tests/src/android/net/wifi/WifiManagerTest.java11
5 files changed, 33 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt
index 7469299b1189..69b4af54cfb8 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -30774,6 +30774,7 @@ package android.net.wifi {
method public boolean isTdlsSupported();
method public boolean isWapiSupported();
method public boolean isWifiEnabled();
+ method public boolean isWifiStandardSupported(int);
method public boolean isWpa3SaeSupported();
method public boolean isWpa3SuiteBSupported();
method @Deprecated public boolean pingSupplicant();
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index 5a98ac86e783..dafb4de62f3c 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -117,6 +117,8 @@ interface IWifiManager
boolean is6GHzBandSupported();
+ boolean isWifiStandardSupported(int standard);
+
boolean needs5GHzToAnyApBandConversion();
DhcpInfo getDhcpInfo();
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 1b74cba6a83e..30f0fb5234bd 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -2491,6 +2491,20 @@ public class WifiManager {
}
/**
+ * Check if the chipset supports a certain Wi-Fi standard.
+ * @param standard the IEEE 802.11 standard to check on.
+ * valid values from {@link ScanResult}'s {@code WIFI_STANDARD_}
+ * @return {@code true} if supported, {@code false} otherwise.
+ */
+ public boolean isWifiStandardSupported(@ScanResult.WifiStandard int standard) {
+ try {
+ return mService.isWifiStandardSupported(standard);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Interface for Wi-Fi activity energy info listener. Should be implemented by applications and
* set when calling {@link WifiManager#getWifiActivityEnergyInfoAsync}.
*
diff --git a/wifi/java/com/android/server/wifi/BaseWifiService.java b/wifi/java/com/android/server/wifi/BaseWifiService.java
index 08822e2762f6..56fa6e23a852 100644
--- a/wifi/java/com/android/server/wifi/BaseWifiService.java
+++ b/wifi/java/com/android/server/wifi/BaseWifiService.java
@@ -254,6 +254,11 @@ public class BaseWifiService extends IWifiManager.Stub {
}
@Override
+ public boolean isWifiStandardSupported(int standard) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public boolean needs5GHzToAnyApBandConversion() {
throw new UnsupportedOperationException();
}
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index 738c6337ee98..f369203e05ab 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -1959,6 +1959,17 @@ public class WifiManagerTest {
}
/**
+ * Test behavior of {@link WifiManager#isWifiStandardSupported()}
+ */
+ @Test
+ public void testIsWifiStandardSupported() throws Exception {
+ int standard = ScanResult.WIFI_STANDARD_11AX;
+ when(mWifiService.isWifiStandardSupported(standard)).thenReturn(true);
+ assertTrue(mWifiManager.isWifiStandardSupported(standard));
+ verify(mWifiService).isWifiStandardSupported(standard);
+ }
+
+ /**
* Test behavior of {@link WifiManager#getDhcpInfo()}
*/
@Test