diff --git a/wifi/api/current.txt b/wifi/api/current.txt index ce2b8ca4f2cdf..e11b33efcc334 100644 --- a/wifi/api/current.txt +++ b/wifi/api/current.txt @@ -332,6 +332,7 @@ package android.net.wifi { method public boolean is5GHzBandSupported(); method public boolean is6GHzBandSupported(); method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isAutoWakeupEnabled(); + method public boolean isBridgedApConcurrencySupported(); method @Deprecated public boolean isDeviceToApRttSupported(); method public boolean isEasyConnectSupported(); method public boolean isEnhancedOpenSupported(); @@ -342,6 +343,7 @@ package android.net.wifi { method @Deprecated public boolean isScanAlwaysAvailable(); method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isScanThrottleEnabled(); method public boolean isStaApConcurrencySupported(); + method public boolean isStaBridgedApConcurrencySupported(); method public boolean isTdlsSupported(); method public boolean isWapiSupported(); method public boolean isWifiEnabled(); diff --git a/wifi/java/android/net/wifi/SoftApConfiguration.java b/wifi/java/android/net/wifi/SoftApConfiguration.java index fddc8899a0c85..226d1a368223d 100644 --- a/wifi/java/android/net/wifi/SoftApConfiguration.java +++ b/wifi/java/android/net/wifi/SoftApConfiguration.java @@ -935,6 +935,9 @@ public final class SoftApConfiguration implements Parcelable { * on the requested bands (if possible). *

* + * Use {@link WifiManager#isBridgedApConcurrencySupported()} to determine + * whether or not concurrent APs are supported. + * * @param bands Array of the {@link #BandType}. * @return Builder for chaining. * @throws IllegalArgumentException when more than 2 bands are set or an invalid band type @@ -1007,6 +1010,9 @@ public final class SoftApConfiguration implements Parcelable { * The {@link SoftApCapability#getSupportedChannelList(int)} can be used to obtain * valid channels in each band. * + * Use {@link WifiManager#isBridgedApConcurrencySupported()} to determine + * whether or not concurrent APs are supported. + * *

* If not set, the default for the channel is the special value 0 which has the framework * auto-select a valid channel from the band configured with {@link #setBands(int[])}. diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index e5aeead2dec03..2b931a380f439 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -2489,6 +2489,12 @@ public class WifiManager { /** @hide */ public static final long WIFI_FEATURE_SAE_PK = 0x10000000000L; // SAE-PK + /** @hide */ + public static final long WIFI_FEATURE_STA_BRIDGED_AP = 0x20000000000L; // STA + Bridged AP + + /** @hide */ + public static final long WIFI_FEATURE_BRIDGED_AP = 0x40000000000L; // Bridged AP + private long getSupportedFeatures() { try { return mService.getSupportedFeatures(); @@ -2688,6 +2694,40 @@ public class WifiManager { } } + /** + * Query whether the device supports Station (STA) + Bridged access point (AP) + * concurrency or not. + * + * The bridged AP support means that the device supports AP + AP concurrency with the 2 APs + * bridged together. + * + * See {@link SoftApConfiguration.Builder#setBands(int[])} + * or {@link SoftApConfiguration.Builder#setChannels(SparseIntArray)} to configure bridged AP + * when the bridged AP supported. + * + * @return true if this device supports STA + bridged AP concurrency, false otherwise. + */ + public boolean isStaBridgedApConcurrencySupported() { + return isFeatureSupported(WIFI_FEATURE_STA_BRIDGED_AP); + } + + /** + * Query whether the device supports Bridged Access point (AP) concurrency or not. + * + * The bridged AP support means that the device supports AP + AP concurrency with the 2 APs + * bridged together. + * + * See {@link SoftApConfiguration.Builder#setBands(int[])} + * or {@link SoftApConfiguration.Builder#setChannels(SparseIntArray)} to configure bridged AP + * when the bridged AP supported. + * + * @return true if this device supports bridged AP concurrency, false otherwise. + */ + public boolean isBridgedApConcurrencySupported() { + return isFeatureSupported(WIFI_FEATURE_BRIDGED_AP); + } + + /** * Interface for Wi-Fi activity energy info listener. Should be implemented by applications and * set when calling {@link WifiManager#getWifiActivityEnergyInfoAsync}.