diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:31:44 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:31:44 -0800 |
commit | 9066cfe9886ac131c34d59ed0e2d287b0e3c0087 (patch) | |
tree | d88beb88001f2482911e3d28e43833b50e4b4e97 /wifi/java/android/net/wifi/SupplicantState.java | |
parent | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (diff) | |
download | frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.zip frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.tar.gz frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'wifi/java/android/net/wifi/SupplicantState.java')
-rw-r--r-- | wifi/java/android/net/wifi/SupplicantState.java | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/wifi/java/android/net/wifi/SupplicantState.java b/wifi/java/android/net/wifi/SupplicantState.java new file mode 100644 index 0000000..169b2d6 --- /dev/null +++ b/wifi/java/android/net/wifi/SupplicantState.java @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.wifi; + +import android.os.Parcel; +import android.os.Parcelable; + +/** + * From <code>defs.h</code> in <code>wpa_supplicant</code>. + * <p/> + * These enumeration values are used to indicate the current wpa_supplicant + * state. This is more fine-grained than most users will be interested in. + * In general, it is better to use + * {@link android.net.NetworkInfo.State NetworkInfo.State}. + * <p/> + * Note, the order of these enum constants must match the numerical values of the + * state constants in <code>defs.h</code> in <code>wpa_supplicant</code>. + */ +public enum SupplicantState implements Parcelable { + /** + * This state indicates that client is not associated, but is likely to + * start looking for an access point. This state is entered when a + * connection is lost. + */ + DISCONNECTED, + + /** + * Inactive state (wpa_supplicant disabled). + * <p/> + * This state is entered if there are no enabled networks in the + * configuration. wpa_supplicant is not trying to associate with a new + * network and external interaction (e.g., ctrl_iface call to add or + * enable a network) is needed to start association. + */ + INACTIVE, + + /** + * Scanning for a network. + * <p/> + * This state is entered when wpa_supplicant starts scanning for a + * network. + */ + SCANNING, + + /** + * Trying to associate with a BSS/SSID. + * <p/> + * This state is entered when wpa_supplicant has found a suitable BSS + * to associate with and the driver is configured to try to associate + * with this BSS in ap_scan=1 mode. When using ap_scan=2 mode, this + * state is entered when the driver is configured to try to associate + * with a network using the configured SSID and security policy. + */ + ASSOCIATING, + + /** + * Association completed. + * <p/> + * This state is entered when the driver reports that association has + * been successfully completed with an AP. If IEEE 802.1X is used + * (with or without WPA/WPA2), wpa_supplicant remains in this state + * until the IEEE 802.1X/EAPOL authentication has been completed. + */ + ASSOCIATED, + + /** + * WPA 4-Way Key Handshake in progress. + * <p/> + * This state is entered when WPA/WPA2 4-Way Handshake is started. In + * case of WPA-PSK, this happens when receiving the first EAPOL-Key + * frame after association. In case of WPA-EAP, this state is entered + * when the IEEE 802.1X/EAPOL authentication has been completed. + */ + FOUR_WAY_HANDSHAKE, + + /** + * WPA Group Key Handshake in progress. + * <p/> + * This state is entered when 4-Way Key Handshake has been completed + * (i.e., when the supplicant sends out message 4/4) and when Group + * Key rekeying is started by the AP (i.e., when supplicant receives + * message 1/2). + */ + GROUP_HANDSHAKE, + + /** + * All authentication completed. + * <p/> + * This state is entered when the full authentication process is + * completed. In case of WPA2, this happens when the 4-Way Handshake is + * successfully completed. With WPA, this state is entered after the + * Group Key Handshake; with IEEE 802.1X (non-WPA) connection is + * completed after dynamic keys are received (or if not used, after + * the EAP authentication has been completed). With static WEP keys and + * plaintext connections, this state is entered when an association + * has been completed. + * <p/> + * This state indicates that the supplicant has completed its + * processing for the association phase and that data connection is + * fully configured. Note, however, that there may not be any IP + * address associated with the connection yet. Typically, a DHCP + * request needs to be sent at this point to obtain an address. + */ + COMPLETED, + + /** + * An Android-added state that is reported when a client issues an + * explicit DISCONNECT command. In such a case, the supplicant is + * not only dissociated from the current access point (as for the + * DISCONNECTED state above), but it also does not attempt to connect + * to any access point until a RECONNECT or REASSOCIATE command + * is issued by the client. + */ + DORMANT, + + /** + * No connection to wpa_supplicant. + * <p/> + * This is an additional pseudo-state to handle the case where + * wpa_supplicant is not running and/or we have not been able + * to establish a connection to it. + */ + UNINITIALIZED, + + /** + * A pseudo-state that should normally never be seen. + */ + INVALID; + + /** + * Returns {@code true} if the supplicant state is valid and {@code false} + * otherwise. + * @param state The supplicant state + * @return {@code true} if the supplicant state is valid and {@code false} + * otherwise. + */ + public static boolean isValidState(SupplicantState state) { + return state != UNINITIALIZED && state != INVALID; + } + + /** Implement the Parcelable interface {@hide} */ + public int describeContents() { + return 0; + } + + /** Implement the Parcelable interface {@hide} */ + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(name()); + } + + /** Implement the Parcelable interface {@hide} */ + public static final Creator<SupplicantState> CREATOR = + new Creator<SupplicantState>() { + public SupplicantState createFromParcel(Parcel in) { + return SupplicantState.valueOf(in.readString()); + } + + public SupplicantState[] newArray(int size) { + return new SupplicantState[size]; + } + }; + +} |