diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index 46a68ac3f03b8..509c789e4080d 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -631,6 +631,7 @@ public class WifiService extends IWifiManager.Stub { } public WifiConfiguration getWifiApConfiguration() { + enforceAccessPermission(); final ContentResolver cr = mContext.getContentResolver(); WifiConfiguration wifiConfig = new WifiConfiguration(); int authType; @@ -648,7 +649,8 @@ public class WifiService extends IWifiManager.Stub { } } - private void persistApConfiguration(WifiConfiguration wifiConfig) { + public void setWifiApConfiguration(WifiConfiguration wifiConfig) { + enforceChangePermission(); final ContentResolver cr = mContext.getContentResolver(); boolean isWpa; if (wifiConfig == null) @@ -681,7 +683,7 @@ public class WifiService extends IWifiManager.Stub { try { nwService.setAccessPoint(wifiConfig, mWifiStateTracker.getInterfaceName(), SOFTAP_IFACE); - persistApConfiguration(wifiConfig); + setWifiApConfiguration(wifiConfig); return true; } catch(Exception e) { Slog.e(TAG, "Exception in nwService during AP restart"); @@ -733,7 +735,7 @@ public class WifiService extends IWifiManager.Stub { return false; } - persistApConfiguration(wifiConfig); + setWifiApConfiguration(wifiConfig); } else { diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index 5fd44b1df6c88..6e0bc9d04f3ff 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -83,5 +83,7 @@ interface IWifiManager int getWifiApEnabledState(); WifiConfiguration getWifiApConfiguration(); + + void setWifiApConfiguration(in WifiConfiguration wifiConfig); } diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 970d5fc18f250..4a22b68852033 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -823,6 +823,21 @@ public class WifiManager { } } + /** + * Sets the Wi-Fi AP Configuration. + * @return {@code true} if the operation succeeded, {@code false} otherwise + * + * @hide Dont open yet + */ + public boolean setWifiApConfiguration(WifiConfiguration wifiConfig) { + try { + mService.setWifiApConfiguration(wifiConfig); + return true; + } catch (RemoteException e) { + return false; + } + } + /** * Allows an application to keep the Wi-Fi radio awake. * Normally the Wi-Fi radio may turn off when the user has not used the device in a while.