summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.txt2
-rw-r--r--services/java/com/android/server/wifi/WifiService.java14
-rw-r--r--wifi/java/android/net/wifi/IWifiManager.aidl2
-rw-r--r--wifi/java/android/net/wifi/WifiManager.java31
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