use of android.net.wifi.ScanResult in project android_frameworks_base by crdroidandroid.
the class WifiTrackerTest method testNonEphemeralConnected.
public void testNonEphemeralConnected() {
mWifiTracker = new WifiTracker(mContext, mWifiListener, mLooper, false, true, true, mWifiManager, mMainLooper);
mWifiTracker.mScanner = mWifiTracker.new Scanner();
List<WifiConfiguration> wifiConfigs = new ArrayList<WifiConfiguration>();
List<ScanResult> scanResults = new ArrayList<ScanResult>();
generateTestNetworks(wifiConfigs, scanResults, false);
// Tell WifiTracker we are connected now.
sendConnected();
// Send all of the configs and scan results to the tracker.
Mockito.when(mWifiManager.getConfiguredNetworks()).thenReturn(wifiConfigs);
Mockito.when(mWifiManager.getScanResults()).thenReturn(scanResults);
// Do this twice to catch a bug that was happening in the caching, making things ephemeral.
sendScanResultsAndProcess(true);
List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();
assertEquals("Expected number of results", NUM_NETWORKS - 1, accessPoints.size());
assertFalse("Connection is not ephemeral", accessPoints.get(0).isEphemeral());
assertTrue("Connected to wifi", accessPoints.get(0).isActive());
}
use of android.net.wifi.ScanResult in project android_frameworks_base by crdroidandroid.
the class WifiTrackerTest method testAvailableOnly.
public void testAvailableOnly() {
mWifiTracker = new WifiTracker(mContext, mWifiListener, mLooper, false, true, true, mWifiManager, mMainLooper);
mWifiTracker.mScanner = mWifiTracker.new Scanner();
List<WifiConfiguration> wifiConfigs = new ArrayList<WifiConfiguration>();
List<ScanResult> scanResults = new ArrayList<ScanResult>();
String[] expectedSsids = generateTestNetworks(wifiConfigs, scanResults, true);
// Tell WifiTracker we are connected now.
sendConnected();
// Send all of the configs and scan results to the tracker.
Mockito.when(mWifiManager.getConfiguredNetworks()).thenReturn(wifiConfigs);
Mockito.when(mWifiManager.getScanResults()).thenReturn(scanResults);
sendScanResultsAndProcess(false);
// Expect the last one (sorted order) to be left off since its only saved.
List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();
assertEquals("Expected number of results", NUM_NETWORKS - 1, accessPoints.size());
for (int i = 0; i < NUM_NETWORKS - 1; i++) {
assertEquals("Verifying slot " + i, expectedSsids[i], accessPoints.get(i).getSsid());
}
}
use of android.net.wifi.ScanResult in project android_frameworks_base by crdroidandroid.
the class WifiTrackerTest method testSavedOnly.
public void testSavedOnly() {
mWifiTracker = new WifiTracker(mContext, mWifiListener, mLooper, true, false, true, mWifiManager, mMainLooper);
mWifiTracker.mScanner = mWifiTracker.new Scanner();
List<WifiConfiguration> wifiConfigs = new ArrayList<WifiConfiguration>();
List<ScanResult> scanResults = new ArrayList<ScanResult>();
generateTestNetworks(wifiConfigs, scanResults, true);
// Tell WifiTracker we are connected now.
sendConnected();
// Send all of the configs and scan results to the tracker.
Mockito.when(mWifiManager.getConfiguredNetworks()).thenReturn(wifiConfigs);
Mockito.when(mWifiManager.getScanResults()).thenReturn(scanResults);
sendScanResultsAndProcess(false);
List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();
// Only expect the first two to come back in the results.
assertEquals("Expected number of results", 2, accessPoints.size());
assertEquals(TEST_SSIDS[1], accessPoints.get(0).getSsid());
assertEquals(TEST_SSIDS[0], accessPoints.get(1).getSsid());
}
use of android.net.wifi.ScanResult in project android_frameworks_base by crdroidandroid.
the class AccessPointTest method testOnAccessPointChangedCallback.
public void testOnAccessPointChangedCallback() {
WifiInfo wifiInfo = Mockito.mock(WifiInfo.class);
Mockito.when(wifiInfo.getNetworkId()).thenReturn(NETWORK_ID);
mAccessPoint.update(wifiInfo, null);
verifyOnAccessPointsCallback(1);
mAccessPoint.update(null, null);
verifyOnAccessPointsCallback(2);
ScanResult result = new ScanResult();
result.capabilities = "";
result.SSID = TEST_SSID;
mAccessPoint.update(result);
verifyOnAccessPointsCallback(3);
}
use of android.net.wifi.ScanResult in project android_frameworks_base by AOSPA.
the class AccessPoint method getVisibilityStatus.
/**
* Returns the visibility status of the WifiConfiguration.
*
* @return autojoin debugging information
* TODO: use a string formatter
* ["rssi 5Ghz", "num results on 5GHz" / "rssi 5Ghz", "num results on 5GHz"]
* For instance [-40,5/-30,2]
*/
private String getVisibilityStatus() {
StringBuilder visibility = new StringBuilder();
StringBuilder scans24GHz = null;
StringBuilder scans5GHz = null;
String bssid = null;
long now = System.currentTimeMillis();
if (mInfo != null) {
bssid = mInfo.getBSSID();
if (bssid != null) {
visibility.append(" ").append(bssid);
}
visibility.append(" rssi=").append(mInfo.getRssi());
visibility.append(" ");
visibility.append(" score=").append(mInfo.score);
visibility.append(String.format(" tx=%.1f,", mInfo.txSuccessRate));
visibility.append(String.format("%.1f,", mInfo.txRetriesRate));
visibility.append(String.format("%.1f ", mInfo.txBadRate));
visibility.append(String.format("rx=%.1f", mInfo.rxSuccessRate));
}
int rssi5 = WifiConfiguration.INVALID_RSSI;
int rssi24 = WifiConfiguration.INVALID_RSSI;
int num5 = 0;
int num24 = 0;
int numBlackListed = 0;
// Number scan results we included in the string
int n24 = 0;
// Number scan results we included in the string
int n5 = 0;
Map<String, ScanResult> list = mScanResultCache.snapshot();
// TODO: sort list by RSSI or age
for (ScanResult result : list.values()) {
if (result.frequency >= LOWER_FREQ_5GHZ && result.frequency <= HIGHER_FREQ_5GHZ) {
// Strictly speaking: [4915, 5825]
// number of known BSSID on 5GHz band
num5 = num5 + 1;
} else if (result.frequency >= LOWER_FREQ_24GHZ && result.frequency <= HIGHER_FREQ_24GHZ) {
// Strictly speaking: [2412, 2482]
// number of known BSSID on 2.4Ghz band
num24 = num24 + 1;
}
if (result.frequency >= LOWER_FREQ_5GHZ && result.frequency <= HIGHER_FREQ_5GHZ) {
if (result.level > rssi5) {
rssi5 = result.level;
}
if (n5 < 4) {
if (scans5GHz == null)
scans5GHz = new StringBuilder();
scans5GHz.append(" \n{").append(result.BSSID);
if (bssid != null && result.BSSID.equals(bssid))
scans5GHz.append("*");
scans5GHz.append("=").append(result.frequency);
scans5GHz.append(",").append(result.level);
scans5GHz.append("}");
n5++;
}
} else if (result.frequency >= LOWER_FREQ_24GHZ && result.frequency <= HIGHER_FREQ_24GHZ) {
if (result.level > rssi24) {
rssi24 = result.level;
}
if (n24 < 4) {
if (scans24GHz == null)
scans24GHz = new StringBuilder();
scans24GHz.append(" \n{").append(result.BSSID);
if (bssid != null && result.BSSID.equals(bssid))
scans24GHz.append("*");
scans24GHz.append("=").append(result.frequency);
scans24GHz.append(",").append(result.level);
scans24GHz.append("}");
n24++;
}
}
}
visibility.append(" [");
if (num24 > 0) {
visibility.append("(").append(num24).append(")");
if (n24 <= 4) {
if (scans24GHz != null) {
visibility.append(scans24GHz.toString());
}
} else {
visibility.append("max=").append(rssi24);
if (scans24GHz != null) {
visibility.append(",").append(scans24GHz.toString());
}
}
}
visibility.append(";");
if (num5 > 0) {
visibility.append("(").append(num5).append(")");
if (n5 <= 4) {
if (scans5GHz != null) {
visibility.append(scans5GHz.toString());
}
} else {
visibility.append("max=").append(rssi5);
if (scans5GHz != null) {
visibility.append(",").append(scans5GHz.toString());
}
}
}
if (numBlackListed > 0)
visibility.append("!").append(numBlackListed);
visibility.append("]");
return visibility.toString();
}
Aggregations