Merge "Add APIs for carrier network selection"

This commit is contained in:
Oscar Shu
2020-11-16 22:52:00 +00:00
committed by Android (Google) Code Review
4 changed files with 63 additions and 0 deletions

View File

@@ -500,9 +500,11 @@ package android.net.wifi {
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startLocalOnlyHotspot(@NonNull android.net.wifi.SoftApConfiguration, @Nullable java.util.concurrent.Executor, @Nullable android.net.wifi.WifiManager.LocalOnlyHotspotCallback);
method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public boolean startScan(android.os.WorkSource);
method @RequiresPermission(anyOf={android.Manifest.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(android.Manifest.permission.NETWORK_SETTINGS) public void startTemporarilyDisablingAllNonCarrierMergedWifi(int);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean startTetheredHotspot(@Nullable android.net.wifi.SoftApConfiguration);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void stopEasyConnectSession();
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean stopSoftAp();
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void stopTemporarilyDisablingAllNonCarrierMergedWifi();
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void unregisterNetworkRequestMatchCallback(@NonNull android.net.wifi.WifiManager.NetworkRequestMatchCallback);
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void unregisterSoftApCallback(@NonNull android.net.wifi.WifiManager.SoftApCallback);
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void unregisterTrafficStateCallback(@NonNull android.net.wifi.WifiManager.TrafficStateCallback);

View File

@@ -277,4 +277,8 @@ interface IWifiManager
boolean isAutoWakeupEnabled();
int getNetworkSuggestionUserApprovalStatus(String packageName);
void startTemporarilyDisablingAllNonCarrierMergedWifi(int subId);
void stopTemporarilyDisablingAllNonCarrierMergedWifi();
}

View File

@@ -4291,6 +4291,45 @@ public class WifiManager {
connectInternal(null, networkId, listener);
}
/**
* Temporarily disable autojoin for all currently visible and provisioned (saved, suggested)
* wifi networks except merged carrier networks from the provided subscription ID.
*
* Disabled networks will get automatically re-enabled when they are out of range for a period
* of time, or after the maximum disable duration specified in the framework.
*
* Calling {@link #stopTemporarilyDisablingAllNonCarrierMergedWifi()} will immediately re-enable
* autojoin on all disabled networks.
*
* @param subscriptionId the subscription ID of the carrier whose merged wifi networks won't be
* disabled {@link android.telephony.SubscriptionInfo#getSubscriptionId()}
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
public void startTemporarilyDisablingAllNonCarrierMergedWifi(int subscriptionId) {
try {
mService.startTemporarilyDisablingAllNonCarrierMergedWifi(subscriptionId);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Re-enable autojoin for all non carrier merged wifi networks temporarily disconnected by
* {@link #startTemporarilyDisablingAllNonCarrierMergedWifi(int)}.
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
public void stopTemporarilyDisablingAllNonCarrierMergedWifi() {
try {
mService.stopTemporarilyDisablingAllNonCarrierMergedWifi();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Save the given network to the list of configured networks for the
* foreground user. If the network already exists, the configuration

View File

@@ -1633,6 +1633,24 @@ public class WifiManagerTest {
verify(mWifiService).getFactoryMacAddresses();
}
/**
* Verify the call to startTemporarilyDisablingAllNonCarrierMergedWifi goes to WifiServiceImpl.
*/
@Test
public void testStartTemporarilyDisablingAllNonCarrierMergedWifi() throws Exception {
mWifiManager.startTemporarilyDisablingAllNonCarrierMergedWifi(1);
verify(mWifiService).startTemporarilyDisablingAllNonCarrierMergedWifi(1);
}
/**
* Verify the call to stopTemporarilyDisablingAllNonCarrierMergedWifi goes to WifiServiceImpl.
*/
@Test
public void testStopTemporarilyDisablingAllNonCarrierMergedWifi() throws Exception {
mWifiManager.stopTemporarilyDisablingAllNonCarrierMergedWifi();
verify(mWifiService).stopTemporarilyDisablingAllNonCarrierMergedWifi();
}
/**
* Verify the call to addOnWifiUsabilityStatsListener goes to WifiServiceImpl.
*/