FileDocCategorySizeDatePackage
ScanResult.javaAPI DocAndroid 5.1 API11858Thu Mar 12 22:22:44 GMT 2015android.net.wifi

ScanResult

public class ScanResult extends Object implements android.os.Parcelable
Describes information about a detected access point. In addition to the attributes described here, the supplicant keeps track of {@code quality}, {@code noise}, and {@code maxbitrate} attributes, but does not currently report them to external clients.

Fields Summary
public String
SSID
The network name.
public WifiSsid
wifiSsid
Ascii encoded SSID. This will replace SSID when we deprecate it. @hide
public String
BSSID
The address of the access point.
public String
capabilities
Describes the authentication, key management, and encryption schemes supported by the access point.
public int
level
The detected signal level in dBm, also known as the RSSI.

Use {@link android.net.wifi.WifiManager#calculateSignalLevel} to convert this number into an absolute signal level which can be displayed to a user.

public int
frequency
The frequency in MHz of the channel over which the client is communicating with the access point.
public long
timestamp
timestamp in microseconds (since boot) when this result was last seen.
public long
seen
Timestamp representing date when this result was last seen, in milliseconds from 1970 {@hide}
public int
isAutoJoinCandidate
If the scan result is a valid autojoin candidate {@hide}
public static final int
ENABLED
public static final int
AUTO_ROAM_DISABLED
public static final int
AUTO_JOIN_DISABLED
public static final int
AUTHENTICATION_ERROR
public int
autoJoinStatus
Status: indicating join status
public int
numIpConfigFailures
num IP configuration failures
public long
blackListTimestamp
public boolean
untrusted
Status: indicating the scan result is not a result that is part of user's saved configurations
public int
numConnection
Number of time we connected to it
public int
numUsage
Number of time autojoin used it
public int
distanceCm
The approximate distance to the AP in centimeter, if available. Else {@link UNSPECIFIED}. {@hide}
public int
distanceSdCm
The standard deviation of the distance to the AP, if available. Else {@link UNSPECIFIED}. {@hide}
public static final int
UNSPECIFIED
{@hide}
public InformationElement[]
informationElements
information elements found in the beacon
public static final Creator
CREATOR
Implement the Parcelable interface {@hide}
Constructors Summary
public ScanResult()
empty scan result {@hide}

    
public ScanResult(WifiSsid wifiSsid, String BSSID, String caps, int level, int frequency, long tsf)
{@hide}

        this.wifiSsid = wifiSsid;
        this.SSID = (wifiSsid != null) ? wifiSsid.toString() : WifiSsid.NONE;
        this.BSSID = BSSID;
        this.capabilities = caps;
        this.level = level;
        this.frequency = frequency;
        this.timestamp = tsf;
        this.distanceCm = UNSPECIFIED;
        this.distanceSdCm = UNSPECIFIED;
    
public ScanResult(WifiSsid wifiSsid, String BSSID, String caps, int level, int frequency, long tsf, int distCm, int distSdCm)
{@hide}

        this.wifiSsid = wifiSsid;
        this.SSID = (wifiSsid != null) ? wifiSsid.toString() : WifiSsid.NONE;
        this.BSSID = BSSID;
        this.capabilities = caps;
        this.level = level;
        this.frequency = frequency;
        this.timestamp = tsf;
        this.distanceCm = distCm;
        this.distanceSdCm = distSdCm;
    
public ScanResult(ScanResult source)
copy constructor {@hide}

        if (source != null) {
            wifiSsid = source.wifiSsid;
            SSID = source.SSID;
            BSSID = source.BSSID;
            capabilities = source.capabilities;
            level = source.level;
            frequency = source.frequency;
            timestamp = source.timestamp;
            distanceCm = source.distanceCm;
            distanceSdCm = source.distanceSdCm;
            seen = source.seen;
            autoJoinStatus = source.autoJoinStatus;
            untrusted = source.untrusted;
            numConnection = source.numConnection;
            numUsage = source.numUsage;
            numIpConfigFailures = source.numIpConfigFailures;
            isAutoJoinCandidate = source.isAutoJoinCandidate;
        }
    
Methods Summary
public voidaverageRssi(int previousRssi, long previousSeen, int maxAge)

hide
Update RSSI of the scan result
param
previousRSSI
param
previousSeen
param
maxAge


        if (seen == 0) {
            seen = System.currentTimeMillis();
        }
        long age = seen - previousSeen;

        if (previousSeen > 0 && age > 0 && age < maxAge/2) {
            // Average the RSSI with previously seen instances of this scan result
            double alpha = 0.5 - (double) age / (double) maxAge;
            level = (int) ((double) level * (1 - alpha) + (double) previousRssi * alpha);
        }
    
public intdescribeContents()
Implement the Parcelable interface {@hide}

        return 0;
    
public booleanis24GHz()

hide

          
       
        return ScanResult.is24GHz(frequency);
    
public static booleanis24GHz(int freq)

hide
TODO: makes real freq boundaries

        return freq > 2400 && freq < 2500;
    
public booleanis5GHz()

hide

        return ScanResult.is5GHz(frequency);
    
public static booleanis5GHz(int freq)

hide
TODO: makes real freq boundaries

        return freq > 4900 && freq < 5900;
    
public voidsetAutoJoinStatus(int status)

hide


      
        
        if (status < 0) status = 0;
        if (status == 0) {
            blackListTimestamp = 0;
        }  else if (status > autoJoinStatus) {
            blackListTimestamp = System.currentTimeMillis();
        }
        autoJoinStatus = status;
    
public java.lang.StringtoString()

        StringBuffer sb = new StringBuffer();
        String none = "<none>";

        sb.append("SSID: ").
            append(wifiSsid == null ? WifiSsid.NONE : wifiSsid).
            append(", BSSID: ").
            append(BSSID == null ? none : BSSID).
            append(", capabilities: ").
            append(capabilities == null ? none : capabilities).
            append(", level: ").
            append(level).
            append(", frequency: ").
            append(frequency).
            append(", timestamp: ").
            append(timestamp);

        sb.append(", distance: ").append((distanceCm != UNSPECIFIED ? distanceCm : "?")).
                append("(cm)");
        sb.append(", distanceSd: ").append((distanceSdCm != UNSPECIFIED ? distanceSdCm : "?")).
                append("(cm)");

        if (autoJoinStatus != 0) {
            sb.append(", status: ").append(autoJoinStatus);
        }
        return sb.toString();
    
public voidwriteToParcel(android.os.Parcel dest, int flags)
Implement the Parcelable interface {@hide}

        if (wifiSsid != null) {
            dest.writeInt(1);
            wifiSsid.writeToParcel(dest, flags);
        } else {
            dest.writeInt(0);
        }
        dest.writeString(BSSID);
        dest.writeString(capabilities);
        dest.writeInt(level);
        dest.writeInt(frequency);
        dest.writeLong(timestamp);
        dest.writeInt(distanceCm);
        dest.writeInt(distanceSdCm);
        dest.writeLong(seen);
        dest.writeInt(autoJoinStatus);
        dest.writeInt(untrusted ? 1 : 0);
        dest.writeInt(numConnection);
        dest.writeInt(numUsage);
        dest.writeInt(numIpConfigFailures);
        dest.writeInt(isAutoJoinCandidate);
        if (informationElements != null) {
            dest.writeInt(informationElements.length);
            for (int i = 0; i < informationElements.length; i++) {
                dest.writeInt(informationElements[i].id);
                dest.writeInt(informationElements[i].bytes.length);
                dest.writeByteArray(informationElements[i].bytes);
            }
        } else {
            dest.writeInt(0);
        }