From 52b665eba0c8e5be05075ae01476cd86527a7038 Mon Sep 17 00:00:00 2001 From: Rebecca Silberstein Date: Thu, 23 Mar 2017 15:05:39 -0700 Subject: [PATCH] WifiManager: add new methods to start softap Add two new methods to start/stop softap in WifiService. These are internal calls that allow WifiService and ConnectivityService to coordinate the switch to and from softap mode. These calls will not be callable by apps and are protected by the NETWORK_STACK permission. The calls are added in this CL, but are not used at this time. Bug: 36540346 Test: compiles Change-Id: Idabdba7f779cbac999ff88d8993b2f4b1f4a1624 --- wifi/java/android/net/wifi/IWifiManager.aidl | 4 +++ wifi/java/android/net/wifi/WifiManager.java | 34 ++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index 65b437d36bd96..69e1029a4f518 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -125,6 +125,10 @@ interface IWifiManager void setWifiApEnabled(in WifiConfiguration wifiConfig, boolean enable); + boolean startSoftAp(in WifiConfiguration wifiConfig); + + boolean stopSoftAp(); + int getWifiApEnabledState(); WifiConfiguration getWifiApConfiguration(); diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index b79ecdd40d90c..ae8a224e87bed 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -16,6 +16,7 @@ package android.net.wifi; +import android.annotation.Nullable; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SystemApi; @@ -1716,6 +1717,39 @@ public class WifiManager { } } + /** + * Start SoftAp mode with the specified configuration. + * Note that starting in access point mode disables station + * mode operation + * @param wifiConfig SSID, security and channel details as + * part of WifiConfiguration + * @return {@code true} if the operation succeeds, {@code false} otherwise + * + * @hide + */ + public boolean startSoftAp(@Nullable WifiConfiguration wifiConfig) { + try { + return mService.startSoftAp(wifiConfig); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Stop SoftAp mode. + * Note that stopping softap mode will restore the previous wifi mode. + * @return {@code true} if the operation succeeds, {@code false} otherwise + * + * @hide + */ + public boolean stopSoftAp() { + try { + return mService.stopSoftAp(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** * Gets the Wi-Fi enabled state. * @return One of {@link #WIFI_AP_STATE_DISABLED},