Merge "Make Information Elements (IE) of a scan result available as a public API."

am: 34a5bbda41

Change-Id: Ia0680401d2c670eb795027ebc3256ec314f41c45
This commit is contained in:
Xiao Ma
2020-01-28 16:21:45 -08:00
committed by android-build-merger
3 changed files with 63 additions and 10 deletions

View File

@@ -29984,7 +29984,9 @@ package android.net.ssl {
package android.net.wifi { package android.net.wifi {
public class ScanResult implements android.os.Parcelable { public class ScanResult implements android.os.Parcelable {
ctor public ScanResult(@NonNull android.net.wifi.ScanResult);
method public int describeContents(); method public int describeContents();
method @NonNull public java.util.List<android.net.wifi.ScanResult.InformationElement> getInformationElements();
method public boolean is80211mcResponder(); method public boolean is80211mcResponder();
method public boolean isPasspointNetwork(); method public boolean isPasspointNetwork();
method public void writeToParcel(android.os.Parcel, int); method public void writeToParcel(android.os.Parcel, int);
@@ -29994,6 +29996,7 @@ 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 @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.ScanResult> CREATOR;
field public String SSID; field public String SSID;
field public String capabilities; field public String capabilities;
field public int centerFreq0; field public int centerFreq0;
@@ -30006,6 +30009,12 @@ package android.net.wifi {
field public CharSequence venueName; field public CharSequence venueName;
} }
public static class ScanResult.InformationElement {
ctor public ScanResult.InformationElement(@NonNull android.net.wifi.ScanResult.InformationElement);
method @NonNull public java.nio.ByteBuffer getBytes();
method public int getId();
}
public enum SupplicantState implements android.os.Parcelable { public enum SupplicantState implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public static boolean isValidState(android.net.wifi.SupplicantState); method public static boolean isValidState(android.net.wifi.SupplicantState);

View File

@@ -16,4 +16,4 @@
package android.net.wifi; package android.net.wifi;
parcelable ScanResult; @JavaOnlyStableParcelable parcelable ScanResult;

View File

@@ -16,13 +16,16 @@
package android.net.wifi; package android.net.wifi;
import android.annotation.NonNull;
import android.annotation.SystemApi; import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -433,58 +436,100 @@ public class ScanResult implements Parcelable {
@UnsupportedAppUsage @UnsupportedAppUsage
public List<String> anqpLines; public List<String> anqpLines;
/** information elements from beacon /**
* @hide * information elements from beacon.
*/ */
public static class InformationElement { public static class InformationElement {
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_SSID = 0; public static final int EID_SSID = 0;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_SUPPORTED_RATES = 1; public static final int EID_SUPPORTED_RATES = 1;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_TIM = 5; public static final int EID_TIM = 5;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_BSS_LOAD = 11; public static final int EID_BSS_LOAD = 11;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_ERP = 42; public static final int EID_ERP = 42;
/** @hide */
public static final int EID_HT_CAPABILITIES = 45; public static final int EID_HT_CAPABILITIES = 45;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_RSN = 48; public static final int EID_RSN = 48;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_EXTENDED_SUPPORTED_RATES = 50; public static final int EID_EXTENDED_SUPPORTED_RATES = 50;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_HT_OPERATION = 61; public static final int EID_HT_OPERATION = 61;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_INTERWORKING = 107; public static final int EID_INTERWORKING = 107;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_ROAMING_CONSORTIUM = 111; public static final int EID_ROAMING_CONSORTIUM = 111;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_EXTENDED_CAPS = 127; public static final int EID_EXTENDED_CAPS = 127;
/** @hide */
public static final int EID_VHT_CAPABILITIES = 191; public static final int EID_VHT_CAPABILITIES = 191;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_VHT_OPERATION = 192; public static final int EID_VHT_OPERATION = 192;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public static final int EID_VSA = 221; public static final int EID_VSA = 221;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public int id; public int id;
/** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public byte[] bytes; public byte[] bytes;
/** @hide */
public InformationElement() { public InformationElement() {
} }
public InformationElement(InformationElement rhs) { public InformationElement(@NonNull InformationElement rhs) {
this.id = rhs.id; this.id = rhs.id;
this.bytes = rhs.bytes.clone(); this.bytes = rhs.bytes.clone();
} }
/**
* The element ID of the information element. Defined in the IEEE 802.11-2016 spec
* Table 9-77.
*/
public int getId() {
return id;
}
/**
* Get the specific content of the information element.
*/
@NonNull
public ByteBuffer getBytes() {
return ByteBuffer.wrap(bytes).asReadOnlyBuffer();
}
} }
/** information elements found in the beacon /**
* information elements found in the beacon.
* @hide * @hide
*/ */
@UnsupportedAppUsage @UnsupportedAppUsage
public InformationElement[] informationElements; public InformationElement[] informationElements;
/**
* Get all information elements found in the beacon.
*/
@NonNull
public List<InformationElement> getInformationElements() {
return Collections.unmodifiableList(Arrays.asList(informationElements));
}
/** ANQP response elements. /** ANQP response elements.
* @hide * @hide
@@ -604,8 +649,8 @@ public class ScanResult implements Parcelable {
this.wifiSsid = wifiSsid; this.wifiSsid = wifiSsid;
} }
/** copy constructor {@hide} */ /** copy constructor */
public ScanResult(ScanResult source) { public ScanResult(@NonNull ScanResult source) {
if (source != null) { if (source != null) {
wifiSsid = source.wifiSsid; wifiSsid = source.wifiSsid;
SSID = source.SSID; SSID = source.SSID;
@@ -759,9 +804,8 @@ public class ScanResult implements Parcelable {
} }
} }
/** Implement the Parcelable interface {@hide} */ /** Implement the Parcelable interface */
@UnsupportedAppUsage public static final @NonNull Creator<ScanResult> CREATOR =
public static final @android.annotation.NonNull Creator<ScanResult> CREATOR =
new Creator<ScanResult>() { new Creator<ScanResult>() {
public ScanResult createFromParcel(Parcel in) { public ScanResult createFromParcel(Parcel in) {
WifiSsid wifiSsid = null; WifiSsid wifiSsid = null;