Loading wifi/java/android/net/wifi/WifiNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ public class WifiNative { /** * Format of results: * ================= * id=1 * bssid=68:7f:74:d7:1b:6e * freq=2412 * level=-43 Loading @@ -208,10 +209,11 @@ public class WifiNative { * ==== * * 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=0x21987"); public String scanResults(int sid) { return doStringCommand("BSS RANGE=" + sid + "- MASK=0x21987"); } public boolean startDriver() { Loading wifi/java/android/net/wifi/WifiStateMachine.java +36 −5 Original line number Diff line number Diff line Loading @@ -68,8 +68,8 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.os.WorkSource; import android.provider.Settings; import android.text.TextUtils; import android.util.LruCache; import android.text.TextUtils; import com.android.internal.R; import com.android.internal.app.IBatteryStats; Loading Loading @@ -1339,6 +1339,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 @@ -1350,6 +1351,8 @@ public class WifiStateMachine extends StateMachine { /** * Format: * * id=1 * bssid=68:7f:76:d7:1a:6e * freq=2412 * level=-44 Loading @@ -1357,6 +1360,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 @@ -1365,15 +1369,42 @@ 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); scanResultsBuf.append("\n"); String[] lines = tmpResults.split("\n"); sid = -1; for (int i=lines.length - 1; i >= 0; i--) { if (lines[i].startsWith(END_STR)) { break; } else 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 @@ -2201,7 +2232,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 @@ -198,6 +198,7 @@ public class WifiNative { /** * Format of results: * ================= * id=1 * bssid=68:7f:74:d7:1b:6e * freq=2412 * level=-43 Loading @@ -208,10 +209,11 @@ public class WifiNative { * ==== * * 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=0x21987"); public String scanResults(int sid) { return doStringCommand("BSS RANGE=" + sid + "- MASK=0x21987"); } public boolean startDriver() { Loading
wifi/java/android/net/wifi/WifiStateMachine.java +36 −5 Original line number Diff line number Diff line Loading @@ -68,8 +68,8 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.os.WorkSource; import android.provider.Settings; import android.text.TextUtils; import android.util.LruCache; import android.text.TextUtils; import com.android.internal.R; import com.android.internal.app.IBatteryStats; Loading Loading @@ -1339,6 +1339,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 @@ -1350,6 +1351,8 @@ public class WifiStateMachine extends StateMachine { /** * Format: * * id=1 * bssid=68:7f:76:d7:1a:6e * freq=2412 * level=-44 Loading @@ -1357,6 +1360,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 @@ -1365,15 +1369,42 @@ 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); scanResultsBuf.append("\n"); String[] lines = tmpResults.split("\n"); sid = -1; for (int i=lines.length - 1; i >= 0; i--) { if (lines[i].startsWith(END_STR)) { break; } else 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 @@ -2201,7 +2232,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