diff --git a/api/system-current.txt b/api/system-current.txt index 78cac92e986cd..12c3108152fa6 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4750,8 +4750,11 @@ package android.net.wifi { method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsConfiguratorInitiator(@NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback); method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsEnrolleeInitiator(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public boolean startScan(android.os.WorkSource); + method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean startSoftAp(@Nullable android.net.wifi.WifiConfiguration); method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startSubscriptionProvisioning(@NonNull android.net.wifi.hotspot2.OsuProvider, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.hotspot2.ProvisioningCallback); method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void stopEasyConnectSession(); + method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean stopSoftAp(); + method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void updateInterfaceIpState(@Nullable String, int); method @RequiresPermission("android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE") public void updateWifiUsabilityScore(int, int, int); field public static final int CHANGE_REASON_ADDED = 0; // 0x0 field public static final int CHANGE_REASON_CONFIG_CHANGE = 2; // 0x2 @@ -4766,10 +4769,16 @@ package android.net.wifi { field public static final String EXTRA_CHANGE_REASON = "changeReason"; field public static final String EXTRA_MULTIPLE_NETWORKS_CHANGED = "multipleChanges"; field public static final String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state"; + field public static final String EXTRA_WIFI_AP_INTERFACE_NAME = "android.net.wifi.extra.WIFI_AP_INTERFACE_NAME"; + field public static final String EXTRA_WIFI_AP_MODE = "android.net.wifi.extra.WIFI_AP_MODE"; field public static final String EXTRA_WIFI_AP_STATE = "wifi_state"; field public static final String EXTRA_WIFI_CONFIGURATION = "wifiConfiguration"; field public static final String EXTRA_WIFI_CREDENTIAL_EVENT_TYPE = "et"; field public static final String EXTRA_WIFI_CREDENTIAL_SSID = "ssid"; + field public static final int IFACE_IP_MODE_CONFIGURATION_ERROR = 0; // 0x0 + field public static final int IFACE_IP_MODE_LOCAL_ONLY = 2; // 0x2 + field public static final int IFACE_IP_MODE_TETHERED = 1; // 0x1 + field public static final int IFACE_IP_MODE_UNSPECIFIED = -1; // 0xffffffff field public static final int PASSPOINT_HOME_NETWORK = 0; // 0x0 field public static final int PASSPOINT_ROAMING_NETWORK = 1; // 0x1 field public static final String WIFI_AP_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_AP_STATE_CHANGED"; diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 5496e83811f8a..769e306fa9ccd 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -38,6 +38,7 @@ import android.net.DhcpInfo; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; +import android.net.NetworkStack; import android.net.wifi.hotspot2.IProvisioningCallback; import android.net.wifi.hotspot2.OsuProvider; import android.net.wifi.hotspot2.PasspointConfiguration; @@ -533,7 +534,9 @@ public class WifiManager { * * @hide */ - public static final String EXTRA_WIFI_AP_INTERFACE_NAME = "wifi_ap_interface_name"; + @SystemApi + public static final String EXTRA_WIFI_AP_INTERFACE_NAME = + "android.net.wifi.extra.WIFI_AP_INTERFACE_NAME"; /** * The intended ip mode for this softap. * @see #IFACE_IP_MODE_TETHERED @@ -541,7 +544,8 @@ public class WifiManager { * * @hide */ - public static final String EXTRA_WIFI_AP_MODE = "wifi_ap_mode"; + @SystemApi + public static final String EXTRA_WIFI_AP_MODE = "android.net.wifi.extra.WIFI_AP_MODE"; /** @hide */ @IntDef(flag = false, prefix = { "WIFI_AP_STATE_" }, value = { @@ -647,6 +651,7 @@ public class WifiManager { * * @hide */ + @SystemApi public static final int IFACE_IP_MODE_UNSPECIFIED = -1; /** @@ -656,6 +661,7 @@ public class WifiManager { * * @hide */ + @SystemApi public static final int IFACE_IP_MODE_CONFIGURATION_ERROR = 0; /** @@ -665,6 +671,7 @@ public class WifiManager { * * @hide */ + @SystemApi public static final int IFACE_IP_MODE_TETHERED = 1; /** @@ -674,6 +681,7 @@ public class WifiManager { * * @hide */ + @SystemApi public static final int IFACE_IP_MODE_LOCAL_ONLY = 2; /** @@ -2661,16 +2669,21 @@ public class WifiManager { /** * Call allowing ConnectivityService to update WifiService with interface mode changes. * - * The possible modes include: {@link #IFACE_IP_MODE_TETHERED}, - * {@link #IFACE_IP_MODE_LOCAL_ONLY}, - * {@link #IFACE_IP_MODE_CONFIGURATION_ERROR} - * - * @param ifaceName String name of the updated interface - * @param mode int representing the new mode + * @param ifaceName String name of the updated interface, or null to represent all interfaces + * @param mode int representing the new mode, one of: + * {@link #IFACE_IP_MODE_TETHERED}, + * {@link #IFACE_IP_MODE_LOCAL_ONLY}, + * {@link #IFACE_IP_MODE_CONFIGURATION_ERROR}, + * {@link #IFACE_IP_MODE_UNSPECIFIED} * * @hide */ - public void updateInterfaceIpState(String ifaceName, int mode) { + @SystemApi + @RequiresPermission(anyOf = { + android.Manifest.permission.NETWORK_STACK, + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK + }) + public void updateInterfaceIpState(@Nullable String ifaceName, @IfaceIpMode int mode) { try { IWifiManager iWifiManager = getIWifiManager(); if (iWifiManager == null) { @@ -2693,6 +2706,11 @@ public class WifiManager { * * @hide */ + @SystemApi + @RequiresPermission(anyOf = { + android.Manifest.permission.NETWORK_STACK, + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK + }) public boolean startSoftAp(@Nullable WifiConfiguration wifiConfig) { try { IWifiManager iWifiManager = getIWifiManager(); @@ -2710,6 +2728,11 @@ public class WifiManager { * * @hide */ + @SystemApi + @RequiresPermission(anyOf = { + android.Manifest.permission.NETWORK_STACK, + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK + }) public boolean stopSoftAp() { try { IWifiManager iWifiManager = getIWifiManager();