summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-09-26 22:11:03 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-26 22:11:03 -0700
commitcbb62bb81807ff83a0887b90111218d81a3f57df (patch)
tree1c355bda808ced4de3aa340c96159e902feaefe7 /wifi
parente187d8148a07de282e907eeeb4b33a8b38653e84 (diff)
parent921df5cbc44c00abe85f04093afe7692e73d490a (diff)
downloadframeworks_base-cbb62bb81807ff83a0887b90111218d81a3f57df.zip
frameworks_base-cbb62bb81807ff83a0887b90111218d81a3f57df.tar.gz
frameworks_base-cbb62bb81807ff83a0887b90111218d81a3f57df.tar.bz2
Merge "Switch to cfg based signal_poll command"
Diffstat (limited to 'wifi')
-rw-r--r--wifi/java/android/net/wifi/WifiNative.java16
-rw-r--r--wifi/java/android/net/wifi/WifiStateMachine.java25
2 files changed, 33 insertions, 8 deletions
diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java
index a6ea6d4..6ff1bc2 100644
--- a/wifi/java/android/net/wifi/WifiNative.java
+++ b/wifi/java/android/net/wifi/WifiNative.java
@@ -106,12 +106,6 @@ public class WifiNative {
public native static String statusCommand();
- public native static int getRssiCommand();
-
- public native static int getRssiApproxCommand();
-
- public native static int getLinkSpeedCommand();
-
public native static String getMacAddressCommand();
public native static String scanResultsCommand();
@@ -209,6 +203,16 @@ public class WifiNative {
private native static String doStringCommand(String command);
+ /** Example output:
+ * RSSI=-65
+ * LINKSPEED=48
+ * NOISE=9999
+ * FREQUENCY=0
+ */
+ public static String signalPoll() {
+ return doStringCommand("SIGNAL_POLL");
+ }
+
public static boolean wpsPbc() {
return doBooleanCommand("WPS_PBC");
}
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index 052d332..41fc55d 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -1362,7 +1362,28 @@ public class WifiStateMachine extends StateMachine {
* Fetch RSSI and linkspeed on current connection
*/
private void fetchRssiAndLinkSpeedNative() {
- int newRssi = WifiNative.getRssiCommand();
+ int newRssi = -1;
+ int newLinkSpeed = -1;
+
+ String signalPoll = WifiNative.signalPoll();
+
+ if (signalPoll != null) {
+ String[] lines = signalPoll.split("\n");
+ for (String line : lines) {
+ String[] prop = line.split("=");
+ if (prop.length < 2) continue;
+ try {
+ if (prop[0].equals("RSSI")) {
+ newRssi = Integer.parseInt(prop[1]);
+ } else if (prop[0].equals("LINKSPEED")) {
+ newLinkSpeed = Integer.parseInt(prop[1]);
+ }
+ } catch (NumberFormatException e) {
+ //Ignore, defaults on rssi and linkspeed are assigned
+ }
+ }
+ }
+
if (newRssi != -1 && MIN_RSSI < newRssi && newRssi < MAX_RSSI) { // screen out invalid values
/* some implementations avoid negative values by adding 256
* so we need to adjust for that here.
@@ -1390,7 +1411,7 @@ public class WifiStateMachine extends StateMachine {
} else {
mWifiInfo.setRssi(MIN_RSSI);
}
- int newLinkSpeed = WifiNative.getLinkSpeedCommand();
+
if (newLinkSpeed != -1) {
mWifiInfo.setLinkSpeed(newLinkSpeed);
}