am 0859b764: Make wifi scan async. (don\'t auto-merge)

Merge commit '0859b764719735e4b9aea5df6051ece13e212841' into gingerbread-plus-aosp

* commit '0859b764719735e4b9aea5df6051ece13e212841':
  Make wifi scan async. (don't auto-merge)
This commit is contained in:
Irfan Sheriff
2010-09-21 12:59:34 -07:00
committed by Android Git Automerger
3 changed files with 24 additions and 17 deletions

View File

@@ -173,6 +173,7 @@ public class WifiService extends IWifiManager.Stub {
private static final int MESSAGE_STOP_ACCESS_POINT = 7; private static final int MESSAGE_STOP_ACCESS_POINT = 7;
private static final int MESSAGE_SET_CHANNELS = 8; private static final int MESSAGE_SET_CHANNELS = 8;
private static final int MESSAGE_ENABLE_NETWORKS = 9; private static final int MESSAGE_ENABLE_NETWORKS = 9;
private static final int MESSAGE_START_SCAN = 10;
private final WifiHandler mWifiHandler; private final WifiHandler mWifiHandler;
@@ -385,23 +386,12 @@ public class WifiService extends IWifiManager.Stub {
/** /**
* see {@link android.net.wifi.WifiManager#startScan()} * see {@link android.net.wifi.WifiManager#startScan()}
* @return {@code true} if the operation succeeds
*/ */
public boolean startScan(boolean forceActive) { public void startScan(boolean forceActive) {
enforceChangePermission(); enforceChangePermission();
if (mWifiHandler == null) return;
switch (mWifiStateTracker.getSupplicantState()) { Message.obtain(mWifiHandler, MESSAGE_START_SCAN, forceActive ? 1 : 0, 0).sendToTarget();
case DISCONNECTED:
case INACTIVE:
case SCANNING:
case DORMANT:
break;
default:
mWifiStateTracker.setScanResultHandling(
WifiStateTracker.SUPPL_SCAN_HANDLING_LIST_ONLY);
break;
}
return mWifiStateTracker.scan(forceActive);
} }
/** /**
@@ -2001,6 +1991,21 @@ public class WifiService extends IWifiManager.Stub {
mWifiStateTracker.enableAllNetworks(getConfiguredNetworks()); mWifiStateTracker.enableAllNetworks(getConfiguredNetworks());
break; break;
case MESSAGE_START_SCAN:
boolean forceActive = (msg.arg1 == 1);
switch (mWifiStateTracker.getSupplicantState()) {
case DISCONNECTED:
case INACTIVE:
case SCANNING:
case DORMANT:
break;
default:
mWifiStateTracker.setScanResultHandling(
WifiStateTracker.SUPPL_SCAN_HANDLING_LIST_ONLY);
break;
}
mWifiStateTracker.scan(forceActive);
break;
} }
} }
} }

View File

@@ -42,7 +42,7 @@ interface IWifiManager
boolean pingSupplicant(); boolean pingSupplicant();
boolean startScan(boolean forceActive); void startScan(boolean forceActive);
List<ScanResult> getScanResults(); List<ScanResult> getScanResults();

View File

@@ -570,7 +570,8 @@ public class WifiManager {
*/ */
public boolean startScan() { public boolean startScan() {
try { try {
return mService.startScan(false); mService.startScan(false);
return true;
} catch (RemoteException e) { } catch (RemoteException e) {
return false; return false;
} }
@@ -588,7 +589,8 @@ public class WifiManager {
*/ */
public boolean startScanActive() { public boolean startScanActive() {
try { try {
return mService.startScan(true); mService.startScan(true);
return true;
} catch (RemoteException e) { } catch (RemoteException e) {
return false; return false;
} }