Merge "Address API review comments" into mnc-dev

This commit is contained in:
Vinit Deshpande
2015-06-23 02:31:32 +00:00
committed by Android (Google) Code Review
7 changed files with 120 additions and 77 deletions

View File

@@ -19085,6 +19085,8 @@ package android.net.wifi {
public class ScanResult implements android.os.Parcelable { public class ScanResult implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public boolean is80211mcResponder();
method public boolean isPasspointNetwork();
method public void writeToParcel(android.os.Parcel, int); method public void writeToParcel(android.os.Parcel, int);
field public java.lang.String BSSID; field public java.lang.String BSSID;
field public static final int CHANNEL_WIDTH_160MHZ = 3; // 0x3 field public static final int CHANNEL_WIDTH_160MHZ = 3; // 0x3
@@ -19092,18 +19094,19 @@ package android.net.wifi {
field public static final int CHANNEL_WIDTH_40MHZ = 1; // 0x1 field public static final int CHANNEL_WIDTH_40MHZ = 1; // 0x1
field public static final int CHANNEL_WIDTH_80MHZ = 2; // 0x2 field public static final int CHANNEL_WIDTH_80MHZ = 2; // 0x2
field public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; // 0x4 field public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; // 0x4
field public static final long FLAG_80211mc_RESPONDER = 2L; // 0x2L
field public static final long FLAG_PASSPOINT_NETWORK = 1L; // 0x1L
field public java.lang.String SSID; field public java.lang.String SSID;
field public java.lang.String capabilities; field public java.lang.String capabilities;
field public int centerFreq0; field public int centerFreq0;
field public int centerFreq1; field public int centerFreq1;
field public int channelWidth; field public int channelWidth;
field public long flags;
field public int frequency; field public int frequency;
field public boolean is80211McRTTResponder;
field public int level; field public int level;
field public java.lang.String operatorFriendlyName; field public java.lang.CharSequence operatorFriendlyName;
field public boolean passpointNetwork;
field public long timestamp; field public long timestamp;
field public java.lang.String venueName; field public java.lang.CharSequence venueName;
} }
public final class SupplicantState extends java.lang.Enum implements android.os.Parcelable { public final class SupplicantState extends java.lang.Enum implements android.os.Parcelable {
@@ -19146,7 +19149,7 @@ package android.net.wifi {
field public java.lang.String preSharedKey; field public java.lang.String preSharedKey;
field public int priority; field public int priority;
field public java.lang.String providerFriendlyName; field public java.lang.String providerFriendlyName;
field public java.util.HashSet<java.lang.Long> roamingConsortiumIds; field public java.lang.Long[] roamingConsortiumIds;
field public int status; field public int status;
field public java.lang.String[] wepKeys; field public java.lang.String[] wepKeys;
field public int wepTxKeyIndex; field public int wepTxKeyIndex;
@@ -19208,7 +19211,7 @@ package android.net.wifi {
method public java.lang.String getAnonymousIdentity(); method public java.lang.String getAnonymousIdentity();
method public java.security.cert.X509Certificate getCaCertificate(); method public java.security.cert.X509Certificate getCaCertificate();
method public java.security.cert.X509Certificate getClientCertificate(); method public java.security.cert.X509Certificate getClientCertificate();
method public java.lang.String getDomainSubjectMatch(); method public java.lang.String getDomainSuffixMatch();
method public int getEapMethod(); method public int getEapMethod();
method public java.lang.String getIdentity(); method public java.lang.String getIdentity();
method public java.lang.String getPassword(); method public java.lang.String getPassword();

View File

@@ -20827,6 +20827,8 @@ package android.net.wifi {
public class ScanResult implements android.os.Parcelable { public class ScanResult implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public boolean is80211mcResponder();
method public boolean isPasspointNetwork();
method public void writeToParcel(android.os.Parcel, int); method public void writeToParcel(android.os.Parcel, int);
field public java.lang.String BSSID; field public java.lang.String BSSID;
field public static final int CHANNEL_WIDTH_160MHZ = 3; // 0x3 field public static final int CHANNEL_WIDTH_160MHZ = 3; // 0x3
@@ -20834,18 +20836,19 @@ package android.net.wifi {
field public static final int CHANNEL_WIDTH_40MHZ = 1; // 0x1 field public static final int CHANNEL_WIDTH_40MHZ = 1; // 0x1
field public static final int CHANNEL_WIDTH_80MHZ = 2; // 0x2 field public static final int CHANNEL_WIDTH_80MHZ = 2; // 0x2
field public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; // 0x4 field public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; // 0x4
field public static final long FLAG_80211mc_RESPONDER = 2L; // 0x2L
field public static final long FLAG_PASSPOINT_NETWORK = 1L; // 0x1L
field public java.lang.String SSID; field public java.lang.String SSID;
field public java.lang.String capabilities; field public java.lang.String capabilities;
field public int centerFreq0; field public int centerFreq0;
field public int centerFreq1; field public int centerFreq1;
field public int channelWidth; field public int channelWidth;
field public long flags;
field public int frequency; field public int frequency;
field public boolean is80211McRTTResponder;
field public int level; field public int level;
field public java.lang.String operatorFriendlyName; field public java.lang.CharSequence operatorFriendlyName;
field public boolean passpointNetwork;
field public long timestamp; field public long timestamp;
field public java.lang.String venueName; field public java.lang.CharSequence venueName;
} }
public final class SupplicantState extends java.lang.Enum implements android.os.Parcelable { public final class SupplicantState extends java.lang.Enum implements android.os.Parcelable {
@@ -20895,7 +20898,7 @@ package android.net.wifi {
field public java.lang.String preSharedKey; field public java.lang.String preSharedKey;
field public int priority; field public int priority;
field public java.lang.String providerFriendlyName; field public java.lang.String providerFriendlyName;
field public java.util.HashSet<java.lang.Long> roamingConsortiumIds; field public java.lang.Long[] roamingConsortiumIds;
field public int status; field public int status;
field public java.lang.String[] wepKeys; field public java.lang.String[] wepKeys;
field public int wepTxKeyIndex; field public int wepTxKeyIndex;
@@ -20972,7 +20975,7 @@ package android.net.wifi {
method public java.lang.String getAnonymousIdentity(); method public java.lang.String getAnonymousIdentity();
method public java.security.cert.X509Certificate getCaCertificate(); method public java.security.cert.X509Certificate getCaCertificate();
method public java.security.cert.X509Certificate getClientCertificate(); method public java.security.cert.X509Certificate getClientCertificate();
method public java.lang.String getDomainSubjectMatch(); method public java.lang.String getDomainSuffixMatch();
method public int getEapMethod(); method public int getEapMethod();
method public java.lang.String getIdentity(); method public java.lang.String getIdentity();
method public java.lang.String getPassword(); method public java.lang.String getPassword();

View File

@@ -346,7 +346,7 @@ public class WifiTracker {
accessPoint.update(mLastInfo, mLastNetworkInfo); accessPoint.update(mLastInfo, mLastNetworkInfo);
} }
if (result.passpointNetwork) { if (result.isPasspointNetwork()) {
WifiConfiguration config = mWifiManager.getMatchingWifiConfig(result); WifiConfiguration config = mWifiManager.getMatchingWifiConfig(result);
if (config != null) { if (config != null) {
accessPoint.update(config); accessPoint.update(config);

View File

@@ -18,6 +18,7 @@ package android.net.wifi;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import android.util.Log;
/** /**
* Describes information about a detected access point. In addition * Describes information about a detected access point. In addition
@@ -80,27 +81,30 @@ public class ScanResult implements Parcelable {
public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4;
/** /**
* AP Channel bandwidth * AP Channel bandwidth; one of {@link #CHANNEL_WIDTH_20MHZ}, {@link #CHANNEL_WIDTH_40MHZ},
* {@link #CHANNEL_WIDTH_80MHZ}, {@link #CHANNEL_WIDTH_160MHZ}
* or {@link #CHANNEL_WIDTH_80MHZ_PLUS_MHZ}.
*/ */
public int channelWidth; public int channelWidth;
/** /**
* Not used if the AP bandwidth is 20 MHz * Not used if the AP bandwidth is 20 MHz
* If the AP use 40, 80 or 160 MHz, this is the center frequency * If the AP use 40, 80 or 160 MHz, this is the center frequency (in MHz)
* if the AP use 80 + 80 MHz, this is the center frequency of the first segment * if the AP use 80 + 80 MHz, this is the center frequency of the first segment (in MHz)
*/ */
public int centerFreq0; public int centerFreq0;
/** /**
* Only used if the AP bandwidth is 80 + 80 MHz * Only used if the AP bandwidth is 80 + 80 MHz
* if the AP use 80 + 80 MHz, this is the center frequency of the second segment * if the AP use 80 + 80 MHz, this is the center frequency of the second segment (in MHz)
*/ */
public int centerFreq1; public int centerFreq1;
/** /**
* Whether the AP support 802.11mc Responder * @deprecated use is80211mcResponder() instead
* @hide
*/ */
public boolean is80211McRTTResponder; public boolean is80211McRTTResponder;
/** /**
* timestamp in microseconds (since boot) when * timestamp in microseconds (since boot) when
@@ -123,7 +127,7 @@ public class ScanResult implements Parcelable {
/** /**
* @hide * @hide
* Update RSSI of the scan result * Update RSSI of the scan result
* @param previousRSSI * @param previousRssi
* @param previousSeen * @param previousSeen
* @param maxAge * @param maxAge
*/ */
@@ -206,26 +210,56 @@ public class ScanResult implements Parcelable {
public int distanceCm; public int distanceCm;
/** /**
* The standard deviation of the distance to the AP, if available. * The standard deviation of the distance to the access point, if available.
* Else {@link UNSPECIFIED}. * Else {@link UNSPECIFIED}.
* {@hide} * {@hide}
*/ */
public int distanceSdCm; public int distanceSdCm;
/** public static final long FLAG_PASSPOINT_NETWORK = 0x0000000000000001;
* Indicates if the scan result represents a passpoint AP public static final long FLAG_80211mc_RESPONDER = 0x0000000000000002;
*/
public boolean passpointNetwork;
/** /**
* Indicates if venue name * Defines flags; such as {@link #FLAG_PASSPOINT_NETWORK}.
*/ */
public String venueName; public long flags;
/** /**
* Indicates operator name * sets a flag in {@link #flags} field
* @param flag flag to set
* @hide
*/ */
public String operatorFriendlyName; public void setFlag(long flag) {
flags |= flag;
}
/**
* clears a flag in {@link #flags} field
* @param flag flag to set
* @hide
*/
public void clearFlag(long flag) {
flags &= ~flag;
}
public boolean is80211mcResponder() {
return (flags & FLAG_80211mc_RESPONDER) != 0;
}
public boolean isPasspointNetwork() {
return (flags & FLAG_PASSPOINT_NETWORK) != 0;
}
/**
* Indicates venue name (such as 'San Francisco Airport') published by access point; only
* available on passpoint network and if published by access point.
*/
public CharSequence venueName;
/**
* Indicates passpoint operator name published by access point.
*/
public CharSequence operatorFriendlyName;
/** /**
* {@hide} * {@hide}
@@ -267,7 +301,7 @@ public class ScanResult implements Parcelable {
**/ **/
public byte[] bytes; public byte[] bytes;
/** information element from beacon /** information elements from beacon
* @hide * @hide
*/ */
public static class InformationElement { public static class InformationElement {
@@ -303,8 +337,7 @@ public class ScanResult implements Parcelable {
this.channelWidth = UNSPECIFIED; this.channelWidth = UNSPECIFIED;
this.centerFreq0 = UNSPECIFIED; this.centerFreq0 = UNSPECIFIED;
this.centerFreq1 = UNSPECIFIED; this.centerFreq1 = UNSPECIFIED;
this.is80211McRTTResponder = false; this.flags = 0;
this.passpointNetwork = false;
} }
/** {@hide} */ /** {@hide} */
@@ -322,8 +355,7 @@ public class ScanResult implements Parcelable {
this.channelWidth = UNSPECIFIED; this.channelWidth = UNSPECIFIED;
this.centerFreq0 = UNSPECIFIED; this.centerFreq0 = UNSPECIFIED;
this.centerFreq1 = UNSPECIFIED; this.centerFreq1 = UNSPECIFIED;
this.is80211McRTTResponder = false; this.flags = 0;
this.passpointNetwork = false;
} }
/** {@hide} */ /** {@hide} */
@@ -342,8 +374,11 @@ public class ScanResult implements Parcelable {
this.channelWidth = channelWidth; this.channelWidth = channelWidth;
this.centerFreq0 = centerFreq0; this.centerFreq0 = centerFreq0;
this.centerFreq1 = centerFreq1; this.centerFreq1 = centerFreq1;
this.is80211McRTTResponder = is80211McRTTResponder; if (is80211McRTTResponder) {
this.passpointNetwork = false; this.flags = FLAG_80211mc_RESPONDER;
} else {
this.flags = 0;
}
} }
/** copy constructor {@hide} */ /** copy constructor {@hide} */
@@ -358,7 +393,6 @@ public class ScanResult implements Parcelable {
channelWidth = source.channelWidth; channelWidth = source.channelWidth;
centerFreq0 = source.centerFreq0; centerFreq0 = source.centerFreq0;
centerFreq1 = source.centerFreq1; centerFreq1 = source.centerFreq1;
is80211McRTTResponder = source.is80211McRTTResponder;
timestamp = source.timestamp; timestamp = source.timestamp;
distanceCm = source.distanceCm; distanceCm = source.distanceCm;
distanceSdCm = source.distanceSdCm; distanceSdCm = source.distanceSdCm;
@@ -369,9 +403,9 @@ public class ScanResult implements Parcelable {
numUsage = source.numUsage; numUsage = source.numUsage;
numIpConfigFailures = source.numIpConfigFailures; numIpConfigFailures = source.numIpConfigFailures;
isAutoJoinCandidate = source.isAutoJoinCandidate; isAutoJoinCandidate = source.isAutoJoinCandidate;
passpointNetwork = source.passpointNetwork;
venueName = source.venueName; venueName = source.venueName;
operatorFriendlyName = source.operatorFriendlyName; operatorFriendlyName = source.operatorFriendlyName;
flags = source.flags;
} }
} }
@@ -405,15 +439,16 @@ public class ScanResult implements Parcelable {
sb.append(", distanceSd: ").append((distanceSdCm != UNSPECIFIED ? distanceSdCm : "?")). sb.append(", distanceSd: ").append((distanceSdCm != UNSPECIFIED ? distanceSdCm : "?")).
append("(cm)"); append("(cm)");
sb.append(", passpoint: ").append(passpointNetwork ? "yes" : "no"); sb.append(", passpoint: ");
sb.append(((flags & FLAG_PASSPOINT_NETWORK) != 0) ? "yes" : "no");
if (autoJoinStatus != 0) { if (autoJoinStatus != 0) {
sb.append(", status: ").append(autoJoinStatus); sb.append(", status: ").append(autoJoinStatus);
} }
sb.append(", ChannelBandwidth: ").append(channelWidth); sb.append(", ChannelBandwidth: ").append(channelWidth);
sb.append(", centerFreq0: ").append(centerFreq0); sb.append(", centerFreq0: ").append(centerFreq0);
sb.append(", centerFreq1: ").append(centerFreq1); sb.append(", centerFreq1: ").append(centerFreq1);
sb.append(", 80211mcResponder: ").append(is80211McRTTResponder? sb.append(", 80211mcResponder: ");
"is supported":"is not supported"); sb.append(((flags & FLAG_80211mc_RESPONDER) != 0) ? "is supported" : "is not supported");
return sb.toString(); return sb.toString();
} }
@@ -440,7 +475,6 @@ public class ScanResult implements Parcelable {
dest.writeInt(channelWidth); dest.writeInt(channelWidth);
dest.writeInt(centerFreq0); dest.writeInt(centerFreq0);
dest.writeInt(centerFreq1); dest.writeInt(centerFreq1);
dest.writeInt(is80211McRTTResponder ? 1 : 0);
dest.writeLong(seen); dest.writeLong(seen);
dest.writeInt(autoJoinStatus); dest.writeInt(autoJoinStatus);
dest.writeInt(untrusted ? 1 : 0); dest.writeInt(untrusted ? 1 : 0);
@@ -448,9 +482,9 @@ public class ScanResult implements Parcelable {
dest.writeInt(numUsage); dest.writeInt(numUsage);
dest.writeInt(numIpConfigFailures); dest.writeInt(numIpConfigFailures);
dest.writeInt(isAutoJoinCandidate); dest.writeInt(isAutoJoinCandidate);
dest.writeInt(passpointNetwork ? 1 : 0); dest.writeString((venueName != null) ? venueName.toString() : "");
dest.writeString(venueName); dest.writeString((operatorFriendlyName != null) ? operatorFriendlyName.toString() : "");
dest.writeString(operatorFriendlyName); dest.writeLong(this.flags);
if (informationElements != null) { if (informationElements != null) {
dest.writeInt(informationElements.length); dest.writeInt(informationElements.length);
@@ -474,18 +508,19 @@ public class ScanResult implements Parcelable {
} }
ScanResult sr = new ScanResult( ScanResult sr = new ScanResult(
wifiSsid, wifiSsid,
in.readString(), in.readString(), /* BSSID */
in.readString(), in.readString(), /* capabilities */
in.readInt(), in.readInt(), /* level */
in.readInt(), in.readInt(), /* frequency */
in.readLong(), in.readLong(), /* timestamp */
in.readInt(), in.readInt(), /* distanceCm */
in.readInt(), in.readInt(), /* distanceSdCm */
in.readInt(), in.readInt(), /* channelWidth */
in.readInt(), in.readInt(), /* centerFreq0 */
in.readInt(), in.readInt(), /* centerFreq1 */
in.readInt() == 1 false /* rtt responder, fixed with flags below */
); );
sr.seen = in.readLong(); sr.seen = in.readLong();
sr.autoJoinStatus = in.readInt(); sr.autoJoinStatus = in.readInt();
sr.untrusted = in.readInt() != 0; sr.untrusted = in.readInt() != 0;
@@ -493,9 +528,9 @@ public class ScanResult implements Parcelable {
sr.numUsage = in.readInt(); sr.numUsage = in.readInt();
sr.numIpConfigFailures = in.readInt(); sr.numIpConfigFailures = in.readInt();
sr.isAutoJoinCandidate = in.readInt(); sr.isAutoJoinCandidate = in.readInt();
sr.passpointNetwork = in.readInt() == 1;
sr.venueName = in.readString(); sr.venueName = in.readString();
sr.operatorFriendlyName = in.readString(); sr.operatorFriendlyName = in.readString();
sr.flags = in.readLong();
int n = in.readInt(); int n = in.readInt();
if (n != 0) { if (n != 0) {
sr.informationElements = new InformationElement[n]; sr.informationElements = new InformationElement[n];

View File

@@ -344,14 +344,15 @@ public class WifiConfiguration implements Parcelable {
public String FQDN; public String FQDN;
/** /**
* Service provider name, for Passpoint credential. * Name of passpoint credential provider
*/ */
public String providerFriendlyName; public String providerFriendlyName;
/** /**
* Roaming Consortium Id, for Passpoint credential. * Roaming Consortium Id list for passpoint credential; identifies a set of networks where
* passpoint credential will be considered valid
*/ */
public HashSet<Long> roamingConsortiumIds; public Long[] roamingConsortiumIds;
/** /**
* @hide * @hide
@@ -906,7 +907,7 @@ public class WifiConfiguration implements Parcelable {
SSID = null; SSID = null;
BSSID = null; BSSID = null;
FQDN = null; FQDN = null;
roamingConsortiumIds = new HashSet<Long>(); roamingConsortiumIds = new Long[0];
priority = 0; priority = 0;
hiddenSSID = false; hiddenSSID = false;
disableReason = DISABLED_UNKNOWN_REASON; disableReason = DISABLED_UNKNOWN_REASON;
@@ -1437,11 +1438,7 @@ public class WifiConfiguration implements Parcelable {
SSID = source.SSID; SSID = source.SSID;
BSSID = source.BSSID; BSSID = source.BSSID;
FQDN = source.FQDN; FQDN = source.FQDN;
roamingConsortiumIds = new HashSet<Long>(); roamingConsortiumIds = source.roamingConsortiumIds.clone();
for (Long roamingConsortiumId : source.roamingConsortiumIds) {
roamingConsortiumIds.add(roamingConsortiumId);
}
providerFriendlyName = source.providerFriendlyName; providerFriendlyName = source.providerFriendlyName;
preSharedKey = source.preSharedKey; preSharedKey = source.preSharedKey;
@@ -1546,7 +1543,7 @@ public class WifiConfiguration implements Parcelable {
dest.writeString(autoJoinBSSID); dest.writeString(autoJoinBSSID);
dest.writeString(FQDN); dest.writeString(FQDN);
dest.writeString(providerFriendlyName); dest.writeString(providerFriendlyName);
dest.writeInt(roamingConsortiumIds.size()); dest.writeInt(roamingConsortiumIds.length);
for (Long roamingConsortiumId : roamingConsortiumIds) { for (Long roamingConsortiumId : roamingConsortiumIds) {
dest.writeLong(roamingConsortiumId); dest.writeLong(roamingConsortiumId);
} }
@@ -1622,8 +1619,9 @@ public class WifiConfiguration implements Parcelable {
config.FQDN = in.readString(); config.FQDN = in.readString();
config.providerFriendlyName = in.readString(); config.providerFriendlyName = in.readString();
int numRoamingConsortiumIds = in.readInt(); int numRoamingConsortiumIds = in.readInt();
config.roamingConsortiumIds = new Long[numRoamingConsortiumIds];
for (int i = 0; i < numRoamingConsortiumIds; i++) { for (int i = 0; i < numRoamingConsortiumIds; i++) {
config.roamingConsortiumIds.add(in.readLong()); config.roamingConsortiumIds[i] = in.readLong();
} }
config.preSharedKey = in.readString(); config.preSharedKey = in.readString();
for (int i = 0; i < config.wepKeys.length; i++) { for (int i = 0; i < config.wepKeys.length; i++) {

View File

@@ -604,12 +604,13 @@ public class WifiEnterpriseConfig implements Parcelable {
* Get the domain_suffix_match value. See setDomSuffixMatch. * Get the domain_suffix_match value. See setDomSuffixMatch.
* @return The domain value. * @return The domain value.
*/ */
public String getDomainSubjectMatch() { public String getDomainSuffixMatch() {
return getFieldValue(DOM_SUFFIX_MATCH_KEY, ""); return getFieldValue(DOM_SUFFIX_MATCH_KEY, "");
} }
/** /**
* Set realm for passpoint credential * Set realm for passpoint credential; realm identifies a set of networks where your
* passpoint credential can be used
* @param realm the realm * @param realm the realm
*/ */
public void setRealm(String realm) { public void setRealm(String realm) {
@@ -617,7 +618,7 @@ public class WifiEnterpriseConfig implements Parcelable {
} }
/** /**
* Get realm for passpoint credential * Get realm for passpoint credential; see {@link #setRealm(String)} for more information
* @return the realm * @return the realm
*/ */
public String getRealm() { public String getRealm() {
@@ -625,15 +626,16 @@ public class WifiEnterpriseConfig implements Parcelable {
} }
/** /**
* Set plmn for passpoint credential * Set plmn (Public Land Mobile Network) of the provider of passpoint credential
* @param plmn the plmn value derived from mcc & mnc * @param plmn the plmn value derived from mcc (mobile country code) & mnc (mobile network code)
*/ */
public void setPlmn(String plmn) { public void setPlmn(String plmn) {
setFieldValue(PLMN_KEY, plmn, ""); setFieldValue(PLMN_KEY, plmn, "");
} }
/** /**
* Get plmn for passpoint credential * Get plmn (Public Land Mobile Network) for passpoint credential; see {@link #setPlmn
* (String)} for more information
* @return the plmn * @return the plmn
*/ */
public String getPlmn() { public String getPlmn() {

View File

@@ -399,14 +399,16 @@ public class WifiManager {
public static final int CHANGE_REASON_CONFIG_CHANGE = 2; public static final int CHANGE_REASON_CONFIG_CHANGE = 2;
/** /**
* An access point scan has completed, and results are available from the supplicant. * An access point scan has completed, and results are available from the supplicant.
* Call {@link #getScanResults()} to obtain the results. * Call {@link #getScanResults()} to obtain the results. {@link #EXTRA_RESULTS_UPDATED}
* indicates if the scan was completed successfully.
*/ */
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String SCAN_RESULTS_AVAILABLE_ACTION = "android.net.wifi.SCAN_RESULTS"; public static final String SCAN_RESULTS_AVAILABLE_ACTION = "android.net.wifi.SCAN_RESULTS";
/** /**
* The result of previous scan, reported with {@link #SCAN_RESULTS_AVAILABLE_ACTION}. * Lookup key for a {@code boolean} representing the result of previous {@link #startScan}
* @return true scan was successful, results updated * operation, reported with {@link #SCAN_RESULTS_AVAILABLE_ACTION}.
* @return true scan was successful, results are updated
* @return false scan was not successful, results haven't been updated since previous scan * @return false scan was not successful, results haven't been updated since previous scan
*/ */
public static final String EXTRA_RESULTS_UPDATED = "resultsUpdated"; public static final String EXTRA_RESULTS_UPDATED = "resultsUpdated";