102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff/* 2651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff * Copyright (C) 2011 The Android Open Source Project 302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * 402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * Licensed under the Apache License, Version 2.0 (the "License"); 502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * you may not use this file except in compliance with the License. 602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * You may obtain a copy of the License at 702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * 802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * http://www.apache.org/licenses/LICENSE-2.0 902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * 1002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * Unless required by applicable law or agreed to in writing, software 1102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * distributed under the License is distributed on an "AS IS" BASIS, 1202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * See the License for the specific language governing permissions and 1402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * limitations under the License. 1502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff */ 1602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 1702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffpackage android.net.wifi; 1802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 1902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffimport android.os.Parcelable; 2002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffimport android.os.Parcel; 2102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 2202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffimport java.util.BitSet; 2302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 2402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff/** 25489a9d81fd1458940e1ec01ba0cef36843732479Irfan Sheriff * A class representing Wi-Fi Protected Setup 266f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * 276f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff * {@see WifiP2pConfig} 2802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff */ 29651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriffpublic class WpsInfo implements Parcelable { 30651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff 31651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Push button configuration */ 32651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public static final int PBC = 0; 33651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Display pin method configuration - pin is generated and displayed on device */ 34651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public static final int DISPLAY = 1; 35651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Keypad pin method configuration - pin is entered on device */ 36651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public static final int KEYPAD = 2; 37651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Label pin method configuration - pin is labelled on device */ 38651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public static final int LABEL = 3; 39651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Invalid configuration */ 40651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public static final int INVALID = 4; 4102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 426f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff /** Wi-Fi Protected Setup. www.wi-fi.org/wifi-protected-setup has details */ 43651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public int setup; 4402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 459cc2718abc0152d79e3e8bf23be94ddd3cc9db87Irfan Sheriff /** @hide */ 4602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff public String BSSID; 4702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 486f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff /** Passed with pin method configuration */ 4902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff public String pin; 5002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 51651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public WpsInfo() { 52651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff setup = INVALID; 5302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff BSSID = null; 5402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff pin = null; 5502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 5602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 5702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff public String toString() { 5802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff StringBuffer sbuf = new StringBuffer(); 59651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff sbuf.append(" setup: ").append(setup); 6002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff sbuf.append('\n'); 6102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff sbuf.append(" BSSID: ").append(BSSID); 6202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff sbuf.append('\n'); 6302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff sbuf.append(" pin: ").append(pin); 6402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff sbuf.append('\n'); 6502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff return sbuf.toString(); 6602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 6702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 68651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Implement the Parcelable interface */ 6902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff public int describeContents() { 7002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff return 0; 7102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 7202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 73651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /* Copy constructor */ 74651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public WpsInfo(WpsInfo source) { 7502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff if (source != null) { 7602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff setup = source.setup; 7702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff BSSID = source.BSSID; 7802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff pin = source.pin; 7902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 8002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 8102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 82651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Implement the Parcelable interface */ 8302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff public void writeToParcel(Parcel dest, int flags) { 84651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff dest.writeInt(setup); 8502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff dest.writeString(BSSID); 8602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff dest.writeString(pin); 8702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 8802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 89651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff /** Implement the Parcelable interface */ 90651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public static final Creator<WpsInfo> CREATOR = 91651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff new Creator<WpsInfo>() { 92651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public WpsInfo createFromParcel(Parcel in) { 93651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff WpsInfo config = new WpsInfo(); 94651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff config.setup = in.readInt(); 9502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff config.BSSID = in.readString(); 9602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff config.pin = in.readString(); 9702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff return config; 9802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 9902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 100651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff public WpsInfo[] newArray(int size) { 101651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff return new WpsInfo[size]; 10202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 10302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff }; 10402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff} 105