diff options
-rw-r--r-- | api/current.txt | 2 | ||||
-rw-r--r-- | services/java/com/android/server/wifi/WifiService.java | 14 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/IWifiManager.aidl | 2 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiManager.java | 31 |
4 files changed, 35 insertions, 14 deletions
diff --git a/api/current.txt b/api/current.txt index 1668170..131c911 100644 --- a/api/current.txt +++ b/api/current.txt @@ -13580,6 +13580,7 @@ package android.net.wifi { method public deprecated android.net.DhcpInfo getDhcpInfo(); method public java.util.List<android.net.wifi.ScanResult> getScanResults(); method public int getWifiState(); + method public boolean isScanningAlwaysAvailable(); method public boolean isWifiEnabled(); method public boolean pingSupplicant(); method public boolean reassociate(); @@ -13590,6 +13591,7 @@ package android.net.wifi { method public boolean startScan(); method public int updateNetwork(android.net.wifi.WifiConfiguration); field public static final java.lang.String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK"; + field public static final java.lang.String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE"; field public static final int ERROR_AUTHENTICATING = 1; // 0x1 field public static final java.lang.String EXTRA_BSSID = "bssid"; field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo"; diff --git a/services/java/com/android/server/wifi/WifiService.java b/services/java/com/android/server/wifi/WifiService.java index bc6bdaf..c46f217 100644 --- a/services/java/com/android/server/wifi/WifiService.java +++ b/services/java/com/android/server/wifi/WifiService.java @@ -482,20 +482,10 @@ public final class WifiService extends IWifiManager.Stub { * started or is already in the queue. */ public boolean isScanningAlwaysAvailable() { - // TODO: implement - return true; - } - - /** - * @param enable {@code true} to enable, {@code false} to disable. - * @return {@code true} if the enable/disable operation was - * started or is already in the queue. - */ - public void setScanningAlwaysAvailable(boolean enable) { - // TODO: implement + enforceAccessPermission(); + return mSettingsStore.isScanAlwaysAvailable(); } - /** * see {@link android.net.wifi.WifiManager#disconnect()} */ diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index e0684fb..f093b52 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -73,8 +73,6 @@ interface IWifiManager boolean isScanningAlwaysAvailable(); - void setScanningAlwaysAvailable(boolean enable); - boolean acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws); void updateWifiLockWorkSource(IBinder lock, in WorkSource ws); diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index a2df64b..f654310 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -393,6 +393,21 @@ public class WifiManager { public static final String NETWORK_IDS_CHANGED_ACTION = "android.net.wifi.NETWORK_IDS_CHANGED"; /** + * Activity Action: Show a system activity that allows the user to enable + * scans to be available even with Wi-Fi turned off. + * + * <p>Notification of the result of this activity is posted using the + * {@link android.app.Activity#onActivityResult} callback. The + * <code>resultCode</code> + * will be {@link android.app.Activity#RESULT_OK} if scan always mode has + * been turned on or {@link android.app.Activity#RESULT_CANCELED} if the user + * has rejected the request or an error has occurred. + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = + "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE"; + + /** * Activity Action: Pick a Wi-Fi network to connect to. * <p>Input: Nothing. * <p>Output: Nothing. @@ -763,6 +778,22 @@ public class WifiManager { } /** + * Check if scanning is always available. + * + * If this return {@code true}, apps can issue {@link #startScan} and fetch scan results + * even when Wi-Fi is turned off. + * + * To change this setting, see {@link #ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE}. + */ + public boolean isScanningAlwaysAvailable() { + try { + return mService.isScanningAlwaysAvailable(); + } catch (RemoteException e) { + return false; + } + } + + /** * Tell the supplicant to persist the current list of configured networks. * <p> * Note: It is possible for this method to change the network IDs of |