WifiManager: Add API for scan always available toggle
Needed for moving away from using Settings.Global values as pseudo APIs. Bug: 148514485 Test: atest android.net.wifi Test: Verified wifi wifi scan toggle in location settings. Change-Id: Iec75d331c7866180a55a327813466323c565319a
This commit is contained in:
@@ -7750,6 +7750,7 @@ package android.net.wifi {
|
||||
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);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMeteredOverridePasspoint(@NonNull String, int);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setScanAlwaysAvailable(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setScanThrottleEnabled(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public boolean setSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setVerboseLoggingEnabled(boolean);
|
||||
|
||||
@@ -125,6 +125,8 @@ interface IWifiManager
|
||||
|
||||
DhcpInfo getDhcpInfo();
|
||||
|
||||
void setScanAlwaysAvailable(boolean isAvailable);
|
||||
|
||||
boolean isScanAlwaysAvailable();
|
||||
|
||||
boolean acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws);
|
||||
|
||||
@@ -2754,6 +2754,26 @@ public class WifiManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if scanning is always available.
|
||||
*
|
||||
* If set to {@code true}, apps can issue {@link #startScan} and fetch scan results
|
||||
* even when Wi-Fi is turned off.
|
||||
*
|
||||
* @param isAvailable true to enable, false to disable.
|
||||
* @hide
|
||||
* @see #isScanAlwaysAvailable()
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
|
||||
public void setScanAlwaysAvailable(boolean isAvailable) {
|
||||
try {
|
||||
mService.setScanAlwaysAvailable(isAvailable);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if scanning is always available.
|
||||
*
|
||||
|
||||
@@ -2401,4 +2401,15 @@ public class WifiManagerTest {
|
||||
assertFalse(mWifiManager.isAutoWakeupEnabled());
|
||||
verify(mWifiService).isAutoWakeupEnabled();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testScanAvailable() throws Exception {
|
||||
mWifiManager.setScanAlwaysAvailable(true);
|
||||
verify(mWifiService).setScanAlwaysAvailable(true);
|
||||
|
||||
when(mWifiService.isScanAlwaysAvailable()).thenReturn(false);
|
||||
assertFalse(mWifiManager.isScanAlwaysAvailable());
|
||||
verify(mWifiService).isScanAlwaysAvailable();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user