Loading wifi/api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -483,6 +483,7 @@ package android.net.wifi { method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.WifiConfiguration> getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(@NonNull java.util.List<android.net.wifi.ScanResult>); method public boolean is60GHzBandSupported(); method public boolean isApMacRandomizationSupported(); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean isCarrierNetworkOffloadEnabled(int, boolean); method public boolean isConnectedMacRandomizationSupported(); method @Deprecated public boolean isDeviceToDeviceRttSupported(); method public boolean isPortableHotspotSupported(); Loading @@ -501,6 +502,7 @@ package android.net.wifi { method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public byte[] retrieveSoftApBackupData(); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void save(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener); method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setAutoWakeupEnabled(boolean); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void setCarrierNetworkOffloadEnabled(int, boolean, boolean); method @RequiresPermission(android.Manifest.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS) public void setCoexUnsafeChannels(@NonNull java.util.Set<android.net.wifi.CoexUnsafeChannel>, int); method @RequiresPermission(android.Manifest.permission.WIFI_SET_DEVICE_MOBILITY_STATE) public void setDeviceMobilityState(int); method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMacRandomizationSettingPasspointEnabled(@NonNull String, boolean); Loading wifi/java/android/net/wifi/IWifiManager.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -296,4 +296,8 @@ interface IWifiManager void startTemporarilyDisablingAllNonCarrierMergedWifi(int subId); void stopTemporarilyDisablingAllNonCarrierMergedWifi(); void setCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged, boolean enabled); boolean isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged); } wifi/java/android/net/wifi/WifiManager.java +60 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.os.Looper; import android.os.RemoteException; import android.os.WorkSource; import android.os.connectivity.WifiActivityEnergyInfo; import android.telephony.SubscriptionInfo; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.CloseGuard; Loading Loading @@ -6721,4 +6722,63 @@ public class WifiManager { throw e.rethrowFromSystemServer(); } } /** * Sets the state of carrier offload on merged or unmerged networks for specified subscription. * * <p> * When a subscription's carrier network offload is disabled, all network suggestions related to * this subscription will not be considered for auto join. * <p> * If calling app want disable all carrier network offload from a specified subscription, should * call this API twice to disable both merged and unmerged carrier network suggestions. * * @param subscriptionId See {@link SubscriptionInfo#getSubscriptionId()}. * @param merged True for carrier merged network, false otherwise. * See {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)} * @param enabled True for enable carrier network offload, false otherwise. * @see #isCarrierNetworkOffloadEnabled(int, boolean) * @hide */ @SystemApi @RequiresPermission(anyOf = { android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void setCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged, boolean enabled) { if (!SdkLevel.isAtLeastS()) { throw new UnsupportedOperationException(); } try { mService.setCarrierNetworkOffloadEnabled(subscriptionId, merged, enabled); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Get the carrier network offload state for merged or unmerged networks for specified * subscription. * @param subscriptionId subscription ID see {@link SubscriptionInfo#getSubscriptionId()} * @param merged True for carrier merged network, false otherwise. * See {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)} * @return True to indicate that carrier network offload is enabled, false otherwise. * @see #setCarrierNetworkOffloadEnabled(int, boolean, boolean) * @hide */ @SystemApi @RequiresPermission(anyOf = { android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged) { if (!SdkLevel.isAtLeastS()) { throw new UnsupportedOperationException(); } try { return mService.isCarrierNetworkOffloadEnabled(subscriptionId, merged); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } } wifi/tests/src/android/net/wifi/WifiManagerTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,7 @@ public class WifiManagerTest { private static final String[] TEST_MAC_ADDRESSES = {"da:a1:19:0:0:0"}; private static final int TEST_AP_FREQUENCY = 2412; private static final int TEST_AP_BANDWIDTH = SoftApInfo.CHANNEL_WIDTH_20MHZ; private static final int TEST_SUB_ID = 3; @Mock Context mContext; @Mock android.net.wifi.IWifiManager mWifiService; Loading Loading @@ -2583,10 +2584,29 @@ public class WifiManagerTest { @Test public void testGetNetworkSuggestionUserApprovalStatus() throws Exception { assumeTrue(SdkLevel.isAtLeastS()); when(mWifiService.getNetworkSuggestionUserApprovalStatus(TEST_PACKAGE_NAME)) .thenReturn(WifiManager.STATUS_SUGGESTION_APPROVAL_APPROVED_BY_USER); assertEquals(WifiManager.STATUS_SUGGESTION_APPROVAL_APPROVED_BY_USER, mWifiManager.getNetworkSuggestionUserApprovalStatus()); verify(mWifiService).getNetworkSuggestionUserApprovalStatus(TEST_PACKAGE_NAME); } @Test public void testSetCarrierNetworkOffload() throws Exception { assumeTrue(SdkLevel.isAtLeastS()); mWifiManager.setCarrierNetworkOffloadEnabled(TEST_SUB_ID, true, false); verify(mWifiService).setCarrierNetworkOffloadEnabled(TEST_SUB_ID, true, false); } @Test public void testGetCarrierNetworkOffload() throws Exception { assumeTrue(SdkLevel.isAtLeastS()); when(mWifiService.isCarrierNetworkOffloadEnabled(TEST_SUB_ID, false)).thenReturn(true); assertTrue(mWifiManager.isCarrierNetworkOffloadEnabled(TEST_SUB_ID, false)); verify(mWifiService).isCarrierNetworkOffloadEnabled(TEST_SUB_ID, false); } } Loading
wifi/api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -483,6 +483,7 @@ package android.net.wifi { method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.WifiConfiguration> getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(@NonNull java.util.List<android.net.wifi.ScanResult>); method public boolean is60GHzBandSupported(); method public boolean isApMacRandomizationSupported(); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean isCarrierNetworkOffloadEnabled(int, boolean); method public boolean isConnectedMacRandomizationSupported(); method @Deprecated public boolean isDeviceToDeviceRttSupported(); method public boolean isPortableHotspotSupported(); Loading @@ -501,6 +502,7 @@ package android.net.wifi { method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public byte[] retrieveSoftApBackupData(); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void save(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener); method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setAutoWakeupEnabled(boolean); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void setCarrierNetworkOffloadEnabled(int, boolean, boolean); method @RequiresPermission(android.Manifest.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS) public void setCoexUnsafeChannels(@NonNull java.util.Set<android.net.wifi.CoexUnsafeChannel>, int); method @RequiresPermission(android.Manifest.permission.WIFI_SET_DEVICE_MOBILITY_STATE) public void setDeviceMobilityState(int); method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMacRandomizationSettingPasspointEnabled(@NonNull String, boolean); Loading
wifi/java/android/net/wifi/IWifiManager.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -296,4 +296,8 @@ interface IWifiManager void startTemporarilyDisablingAllNonCarrierMergedWifi(int subId); void stopTemporarilyDisablingAllNonCarrierMergedWifi(); void setCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged, boolean enabled); boolean isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged); }
wifi/java/android/net/wifi/WifiManager.java +60 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.os.Looper; import android.os.RemoteException; import android.os.WorkSource; import android.os.connectivity.WifiActivityEnergyInfo; import android.telephony.SubscriptionInfo; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.CloseGuard; Loading Loading @@ -6721,4 +6722,63 @@ public class WifiManager { throw e.rethrowFromSystemServer(); } } /** * Sets the state of carrier offload on merged or unmerged networks for specified subscription. * * <p> * When a subscription's carrier network offload is disabled, all network suggestions related to * this subscription will not be considered for auto join. * <p> * If calling app want disable all carrier network offload from a specified subscription, should * call this API twice to disable both merged and unmerged carrier network suggestions. * * @param subscriptionId See {@link SubscriptionInfo#getSubscriptionId()}. * @param merged True for carrier merged network, false otherwise. * See {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)} * @param enabled True for enable carrier network offload, false otherwise. * @see #isCarrierNetworkOffloadEnabled(int, boolean) * @hide */ @SystemApi @RequiresPermission(anyOf = { android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void setCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged, boolean enabled) { if (!SdkLevel.isAtLeastS()) { throw new UnsupportedOperationException(); } try { mService.setCarrierNetworkOffloadEnabled(subscriptionId, merged, enabled); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Get the carrier network offload state for merged or unmerged networks for specified * subscription. * @param subscriptionId subscription ID see {@link SubscriptionInfo#getSubscriptionId()} * @param merged True for carrier merged network, false otherwise. * See {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)} * @return True to indicate that carrier network offload is enabled, false otherwise. * @see #setCarrierNetworkOffloadEnabled(int, boolean, boolean) * @hide */ @SystemApi @RequiresPermission(anyOf = { android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged) { if (!SdkLevel.isAtLeastS()) { throw new UnsupportedOperationException(); } try { return mService.isCarrierNetworkOffloadEnabled(subscriptionId, merged); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } }
wifi/tests/src/android/net/wifi/WifiManagerTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,7 @@ public class WifiManagerTest { private static final String[] TEST_MAC_ADDRESSES = {"da:a1:19:0:0:0"}; private static final int TEST_AP_FREQUENCY = 2412; private static final int TEST_AP_BANDWIDTH = SoftApInfo.CHANNEL_WIDTH_20MHZ; private static final int TEST_SUB_ID = 3; @Mock Context mContext; @Mock android.net.wifi.IWifiManager mWifiService; Loading Loading @@ -2583,10 +2584,29 @@ public class WifiManagerTest { @Test public void testGetNetworkSuggestionUserApprovalStatus() throws Exception { assumeTrue(SdkLevel.isAtLeastS()); when(mWifiService.getNetworkSuggestionUserApprovalStatus(TEST_PACKAGE_NAME)) .thenReturn(WifiManager.STATUS_SUGGESTION_APPROVAL_APPROVED_BY_USER); assertEquals(WifiManager.STATUS_SUGGESTION_APPROVAL_APPROVED_BY_USER, mWifiManager.getNetworkSuggestionUserApprovalStatus()); verify(mWifiService).getNetworkSuggestionUserApprovalStatus(TEST_PACKAGE_NAME); } @Test public void testSetCarrierNetworkOffload() throws Exception { assumeTrue(SdkLevel.isAtLeastS()); mWifiManager.setCarrierNetworkOffloadEnabled(TEST_SUB_ID, true, false); verify(mWifiService).setCarrierNetworkOffloadEnabled(TEST_SUB_ID, true, false); } @Test public void testGetCarrierNetworkOffload() throws Exception { assumeTrue(SdkLevel.isAtLeastS()); when(mWifiService.isCarrierNetworkOffloadEnabled(TEST_SUB_ID, false)).thenReturn(true); assertTrue(mWifiManager.isCarrierNetworkOffloadEnabled(TEST_SUB_ID, false)); verify(mWifiService).isCarrierNetworkOffloadEnabled(TEST_SUB_ID, false); } }