diff options
| author | 2013-03-20 15:49:20 +0000 | |
|---|---|---|
| committer | 2013-03-20 15:49:20 +0000 | |
| commit | 63f1e2fb6b7102490b11523589b82c2101d3c079 (patch) | |
| tree | 06e6d2b718a882043cef77cbd29ca32431d16c19 | |
| parent | ec3928bf0993e13fb82c65ac26a4d70f5bc6c5e4 (diff) | |
| parent | 1ef840cdc785d0e8a07e317cc1d7af42a0d0185d (diff) | |
Merge "Add API to control scan always mode" into jb-mr2-dev
| -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 e89dc2207873..ad2a623e8144 100644 --- a/api/current.txt +++ b/api/current.txt @@ -13582,6 +13582,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(); @@ -13592,6 +13593,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 bc6bdaf903ac..c46f2174593e 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 e0684fbe86c8..f093b52a1c3f 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 a2df64b28c45..f6543104ddd7 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 |