Loading wifi/java/android/net/wifi/WifiNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ public class WifiNative { /** * Format of results: * ================= * id=1 * bssid=68:7f:74:d7:1b:6e * freq=2412 * level=-43 Loading @@ -211,10 +212,11 @@ public class WifiNative { * ssid=zubyb * * RANGE=ALL gets all scan results * RANGE=ID- gets results from ID * MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details */ public String scanResults() { return doStringCommand("BSS RANGE=ALL MASK=0x1986"); public String scanResults(int sid) { return doStringCommand("BSS RANGE=" + sid + "- MASK=0x1987"); } public boolean startDriver() { Loading wifi/java/android/net/wifi/WifiStateMachine.java +36 −4 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ import android.os.WorkSource; import android.provider.Settings; import android.util.Log; import android.util.LruCache; import android.text.TextUtils; import com.android.internal.R; import com.android.internal.app.IBatteryStats; Loading Loading @@ -1369,6 +1370,7 @@ public class WifiStateMachine extends StateMachine { mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL); } private static final String ID_STR = "id="; private static final String BSSID_STR = "bssid="; private static final String FREQ_STR = "freq="; private static final String LEVEL_STR = "level="; Loading @@ -1376,8 +1378,12 @@ public class WifiStateMachine extends StateMachine { private static final String FLAGS_STR = "flags="; private static final String SSID_STR = "ssid="; private static final String DELIMITER_STR = "===="; private static final int SCAN_BUF_RANGE = 3900; /** * Format: * * id=1 * bssid=68:7f:76:d7:1a:6e * freq=2412 * level=-44 Loading @@ -1385,6 +1391,7 @@ public class WifiStateMachine extends StateMachine { * flags=[WPA2-PSK-CCMP][WPS][ESS] * ssid=zfdy * ==== * id=2 * bssid=68:5f:74:d7:1a:6f * freq=5180 * level=-73 Loading @@ -1393,15 +1400,40 @@ public class WifiStateMachine extends StateMachine { * ssid=zuby * ==== */ private void setScanResults(String scanResults) { private void setScanResults() { String bssid = ""; int level = 0; int freq = 0; long tsf = 0; String flags = ""; WifiSsid wifiSsid = null; String scanResults; String tmpResults; StringBuffer scanResultsBuf = new StringBuffer(); int sid = 0; while (true) { tmpResults = mWifiNative.scanResults(sid); if (TextUtils.isEmpty(tmpResults)) break; scanResultsBuf.append(tmpResults); if (tmpResults.length() < SCAN_BUF_RANGE) break; String[] lines = tmpResults.split("\n"); sid = -1; for (int i=lines.length - 1; i >= 0; i--) { if (lines[i].startsWith(ID_STR)) { try { sid = Integer.parseInt(lines[i].substring(ID_STR.length())) + 1; } catch (NumberFormatException e) { // Nothing to do } break; } } if (sid == -1) break; } if (scanResults == null) { scanResults = scanResultsBuf.toString(); if (TextUtils.isEmpty(scanResults)) { return; } Loading Loading @@ -2407,7 +2439,7 @@ public class WifiStateMachine extends StateMachine { sendMessageDelayed(CMD_START_SUPPLICANT, SUPPLICANT_RESTART_INTERVAL_MSECS); break; case WifiMonitor.SCAN_RESULTS_EVENT: setScanResults(mWifiNative.scanResults()); setScanResults(); sendScanResultsAvailableBroadcast(); mScanResultIsPending = false; break; Loading Loading
wifi/java/android/net/wifi/WifiNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ public class WifiNative { /** * Format of results: * ================= * id=1 * bssid=68:7f:74:d7:1b:6e * freq=2412 * level=-43 Loading @@ -211,10 +212,11 @@ public class WifiNative { * ssid=zubyb * * RANGE=ALL gets all scan results * RANGE=ID- gets results from ID * MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details */ public String scanResults() { return doStringCommand("BSS RANGE=ALL MASK=0x1986"); public String scanResults(int sid) { return doStringCommand("BSS RANGE=" + sid + "- MASK=0x1987"); } public boolean startDriver() { Loading
wifi/java/android/net/wifi/WifiStateMachine.java +36 −4 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ import android.os.WorkSource; import android.provider.Settings; import android.util.Log; import android.util.LruCache; import android.text.TextUtils; import com.android.internal.R; import com.android.internal.app.IBatteryStats; Loading Loading @@ -1369,6 +1370,7 @@ public class WifiStateMachine extends StateMachine { mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL); } private static final String ID_STR = "id="; private static final String BSSID_STR = "bssid="; private static final String FREQ_STR = "freq="; private static final String LEVEL_STR = "level="; Loading @@ -1376,8 +1378,12 @@ public class WifiStateMachine extends StateMachine { private static final String FLAGS_STR = "flags="; private static final String SSID_STR = "ssid="; private static final String DELIMITER_STR = "===="; private static final int SCAN_BUF_RANGE = 3900; /** * Format: * * id=1 * bssid=68:7f:76:d7:1a:6e * freq=2412 * level=-44 Loading @@ -1385,6 +1391,7 @@ public class WifiStateMachine extends StateMachine { * flags=[WPA2-PSK-CCMP][WPS][ESS] * ssid=zfdy * ==== * id=2 * bssid=68:5f:74:d7:1a:6f * freq=5180 * level=-73 Loading @@ -1393,15 +1400,40 @@ public class WifiStateMachine extends StateMachine { * ssid=zuby * ==== */ private void setScanResults(String scanResults) { private void setScanResults() { String bssid = ""; int level = 0; int freq = 0; long tsf = 0; String flags = ""; WifiSsid wifiSsid = null; String scanResults; String tmpResults; StringBuffer scanResultsBuf = new StringBuffer(); int sid = 0; while (true) { tmpResults = mWifiNative.scanResults(sid); if (TextUtils.isEmpty(tmpResults)) break; scanResultsBuf.append(tmpResults); if (tmpResults.length() < SCAN_BUF_RANGE) break; String[] lines = tmpResults.split("\n"); sid = -1; for (int i=lines.length - 1; i >= 0; i--) { if (lines[i].startsWith(ID_STR)) { try { sid = Integer.parseInt(lines[i].substring(ID_STR.length())) + 1; } catch (NumberFormatException e) { // Nothing to do } break; } } if (sid == -1) break; } if (scanResults == null) { scanResults = scanResultsBuf.toString(); if (TextUtils.isEmpty(scanResults)) { return; } Loading Loading @@ -2407,7 +2439,7 @@ public class WifiStateMachine extends StateMachine { sendMessageDelayed(CMD_START_SUPPLICANT, SUPPLICANT_RESTART_INTERVAL_MSECS); break; case WifiMonitor.SCAN_RESULTS_EVENT: setScanResults(mWifiNative.scanResults()); setScanResults(); sendScanResultsAvailableBroadcast(); mScanResultIsPending = false; break; Loading