summaryrefslogtreecommitdiffstats
path: root/core/jni/android_net_wifi_Wifi.cpp
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-07-09 14:27:38 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-07-09 14:27:38 -0700
commit6811355d9683412cb3651e75c59c3256ceaddcec (patch)
treea69b7952f5263746a90772bb2b2adaf63a33b530 /core/jni/android_net_wifi_Wifi.cpp
parent58e8131631b4598d445303183ee6ea80b7e63038 (diff)
parent463aacfbd220c9ef2f6ed915d54092289fdac05b (diff)
downloadframeworks_base-6811355d9683412cb3651e75c59c3256ceaddcec.zip
frameworks_base-6811355d9683412cb3651e75c59c3256ceaddcec.tar.gz
frameworks_base-6811355d9683412cb3651e75c59c3256ceaddcec.tar.bz2
am 463aacfb: Merge change 6661 into donut
Merge commit '463aacfbd220c9ef2f6ed915d54092289fdac05b' * commit '463aacfbd220c9ef2f6ed915d54092289fdac05b': wifi: WifiManager.startScan() will now do passive scans by default.
Diffstat (limited to 'core/jni/android_net_wifi_Wifi.cpp')
-rw-r--r--core/jni/android_net_wifi_Wifi.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/core/jni/android_net_wifi_Wifi.cpp b/core/jni/android_net_wifi_Wifi.cpp
index 75ae4d9..70b7da1 100644
--- a/core/jni/android_net_wifi_Wifi.cpp
+++ b/core/jni/android_net_wifi_Wifi.cpp
@@ -27,6 +27,8 @@
namespace android {
+static jboolean sScanModeActive = false;
+
/*
* The following remembers the jfieldID's of the fields
* of the DhcpInfo Java object, so that we don't have
@@ -254,27 +256,29 @@ static jboolean android_net_wifi_reassociateCommand(JNIEnv* env, jobject clazz)
return doBooleanCommand("REASSOCIATE", "OK");
}
-static jboolean android_net_wifi_scanCommand(JNIEnv* env, jobject clazz)
+static jboolean doSetScanMode(jboolean setActive)
+{
+ return doBooleanCommand((setActive ? "DRIVER SCAN-ACTIVE" : "DRIVER SCAN-PASSIVE"), "OK");
+}
+
+static jboolean android_net_wifi_scanCommand(JNIEnv* env, jobject clazz, jboolean forceActive)
{
jboolean result;
+
// Ignore any error from setting the scan mode.
// The scan will still work.
- (void)doBooleanCommand("DRIVER SCAN-ACTIVE", "OK");
+ if (forceActive && !sScanModeActive)
+ doSetScanMode(true);
result = doBooleanCommand("SCAN", "OK");
- (void)doBooleanCommand("DRIVER SCAN-PASSIVE", "OK");
+ if (forceActive && !sScanModeActive)
+ doSetScanMode(sScanModeActive);
return result;
}
static jboolean android_net_wifi_setScanModeCommand(JNIEnv* env, jobject clazz, jboolean setActive)
{
- jboolean result;
- // Ignore any error from setting the scan mode.
- // The scan will still work.
- if (setActive) {
- return doBooleanCommand("DRIVER SCAN-ACTIVE", "OK");
- } else {
- return doBooleanCommand("DRIVER SCAN-PASSIVE", "OK");
- }
+ sScanModeActive = setActive;
+ return doSetScanMode(setActive);
}
static jboolean android_net_wifi_startDriverCommand(JNIEnv* env, jobject clazz)
@@ -520,7 +524,7 @@ static JNINativeMethod gWifiMethods[] = {
{ "disconnectCommand", "()Z", (void *)android_net_wifi_disconnectCommand },
{ "reconnectCommand", "()Z", (void *)android_net_wifi_reconnectCommand },
{ "reassociateCommand", "()Z", (void *)android_net_wifi_reassociateCommand },
- { "scanCommand", "()Z", (void*) android_net_wifi_scanCommand },
+ { "scanCommand", "(Z)Z", (void*) android_net_wifi_scanCommand },
{ "setScanModeCommand", "(Z)Z", (void*) android_net_wifi_setScanModeCommand },
{ "startDriverCommand", "()Z", (void*) android_net_wifi_startDriverCommand },
{ "stopDriverCommand", "()Z", (void*) android_net_wifi_stopDriverCommand },