diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-09-26 22:11:03 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-26 22:11:03 -0700 |
commit | cbb62bb81807ff83a0887b90111218d81a3f57df (patch) | |
tree | 1c355bda808ced4de3aa340c96159e902feaefe7 /wifi | |
parent | e187d8148a07de282e907eeeb4b33a8b38653e84 (diff) | |
parent | 921df5cbc44c00abe85f04093afe7692e73d490a (diff) | |
download | frameworks_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.java | 16 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 25 |
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); } |