Wifi config file android

Android example source code file (WifiConfiguration.java)

This example Android source code file (WifiConfiguration.java) is included in the DevDaily.com «Java Source Code Warehouse» project. The intent of this project is to help you «Learn Android by Example» TM .

Java — Android tags/keywords

android, bitset, bssid, ccmp, creator, enterprisefield, keymgmt, none, os, ssid, status, string, stringbuffer, tkip, util, wificonfiguration, wpa

The WifiConfiguration.java Android example source code

/* * 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.Parcelable; import android.os.Parcel; import java.util.BitSet; /** * A class representing a configured Wi-Fi network, including the * security configuration. Android will not necessarily support * all of these security schemes initially. */ public class WifiConfiguration implements Parcelable < /** */ public static final String ssidVarName = "ssid"; /** */ public static final String bssidVarName = "bssid"; /** */ public static final String pskVarName = "psk"; /** */ public static final String[] wepKeyVarNames = < "wep_key0", "wep_key1", "wep_key2", "wep_key3" >; /** */ public static final String wepTxKeyIdxVarName = "wep_tx_keyidx"; /** */ public static final String priorityVarName = "priority"; /** */ public static final String hiddenSSIDVarName = "scan_ssid"; /** */ public class EnterpriseField < private String varName; private String value; private EnterpriseField(String varName) < this.varName = varName; this.value = null; >public void setValue(String value) < this.value = value; >public String varName() < return varName; >public String value() < return value; >> /** */ public EnterpriseField eap = new EnterpriseField("eap"); /** */ public EnterpriseField phase2 = new EnterpriseField("phase2"); /** */ public EnterpriseField identity = new EnterpriseField("identity"); /** */ public EnterpriseField anonymous_identity = new EnterpriseField("anonymous_identity"); /** */ public EnterpriseField password = new EnterpriseField("password"); /** */ public EnterpriseField client_cert = new EnterpriseField("client_cert"); /** */ public EnterpriseField private_key = new EnterpriseField("private_key"); /** */ public EnterpriseField ca_cert = new EnterpriseField("ca_cert"); /** */ public EnterpriseField[] enterpriseFields = < eap, phase2, identity, anonymous_identity, password, client_cert, private_key, ca_cert >; /** * Recognized key management schemes. */ public static class KeyMgmt < private KeyMgmt() < >/** WPA is not used; plaintext or static WEP could be used. */ public static final int NONE = 0; /** WPA pre-shared key (requires to be specified). */ public static final int WPA_PSK = 1; /** WPA using EAP authentication. Generally used with an external authentication server. */ public static final int WPA_EAP = 2; /** IEEE 802.1X using EAP authentication and (optionally) dynamically * generated WEP keys. */ public static final int IEEE8021X = 3; public static final String varName = "key_mgmt"; public static final String[] strings = < "NONE", "WPA_PSK", "WPA_EAP", "IEEE8021X" >; > /** * Recognized security protocols. */ public static class Protocol < private Protocol() < >/** WPA/IEEE 802.11i/D3.0 */ public static final int WPA = 0; /** WPA2/IEEE 802.11i */ public static final int RSN = 1; public static final String varName = "proto"; public static final String[] strings = < "WPA", "RSN" >; > /** * Recognized IEEE 802.11 authentication algorithms. */ public static class AuthAlgorithm < private AuthAlgorithm() < >/** Open System authentication (required for WPA/WPA2) */ public static final int OPEN = 0; /** Shared Key authentication (requires static WEP keys) */ public static final int SHARED = 1; /** LEAP/Network EAP (only used with LEAP) */ public static final int LEAP = 2; public static final String varName = "auth_alg"; public static final String[] strings = < "OPEN", "SHARED", "LEAP" >; > /** * Recognized pairwise ciphers for WPA. */ public static class PairwiseCipher < private PairwiseCipher() < >/** Use only Group keys (deprecated) */ public static final int NONE = 0; /** Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] */ public static final int TKIP = 1; /** AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] */ public static final int CCMP = 2; public static final String varName = "pairwise"; public static final String[] strings = < "NONE", "TKIP", "CCMP" >; > /** * Recognized group ciphers. * 
* CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] * TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] * WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key * WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key (original 802.11) *

*/ public static class GroupCipher < private GroupCipher() < >/** WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key (original 802.11) */ public static final int WEP40 = 0; /** WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key */ public static final int WEP104 = 1; /** Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] */ public static final int TKIP = 2; /** AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] */ public static final int CCMP = 3; public static final String varName = "group"; public static final String[] strings = < "WEP40", "WEP104", "TKIP", "CCMP" >; > /** Possible status of a network configuration. */ public static class Status < private Status() < >/** this is the network we are currently connected to */ public static final int CURRENT = 0; /** supplicant will not attempt to use this network */ public static final int DISABLED = 1; /** supplicant will consider this network available for association */ public static final int ENABLED = 2; public static final String[] strings = < "current", "disabled", "enabled" >; > /** * The ID number that the supplicant uses to identify this * network configuration entry. This must be passed as an argument * to most calls into the supplicant. */ public int networkId; /** * The current status of this network configuration entry. * @see Status */ public int status; /** * The network's SSID. Can either be an ASCII string, * which must be enclosed in double quotation marks * (e.g., , or a string of * hex digits,which are not enclosed in quotes * (e.g., ). */ public String SSID; /** * When set, this network configuration entry should only be used when * associating with the AP having the specified BSSID. The value is * a string in the format of an Ethernet MAC address, e.g., * XX:XX:XX:XX:XX:XX where each X is a hex digit. */ public String BSSID; /** * Pre-shared key for use with WPA-PSK. * * When the value of this key is read, the actual key is * not returned, just a "*" if the key has a value, or the null * string otherwise. */ public String preSharedKey; /** * Up to four WEP keys. Either an ASCII string enclosed in double * quotation marks (e.g., or a string * of hex digits (e.g., ). * * When the value of one of these keys is read, the actual key is * not returned, just a "*" if the key has a value, or the null * string otherwise. */ public String[] wepKeys; /** Default WEP key index, ranging from 0 to 3. */ public int wepTxKeyIndex; /** * Priority determines the preference given to a network by * when choosing an access point with which to associate. */ public int priority; /** * This is a network that does not broadcast its SSID, so an * SSID-specific probe request must be used for scans. */ public boolean hiddenSSID; /** * The set of key management protocols supported by this configuration. * See for descriptions of the values. * Defaults to WPA-PSK WPA-EAP. */ public BitSet allowedKeyManagement; /** * The set of security protocols supported by this configuration. * See for descriptions of the values. * Defaults to WPA RSN. */ public BitSet allowedProtocols; /** * The set of authentication protocols supported by this configuration. * See for descriptions of the values. * Defaults to automatic selection. */ public BitSet allowedAuthAlgorithms; /** * The set of pairwise ciphers for WPA supported by this configuration. * See for descriptions of the values. * Defaults to CCMP TKIP. */ public BitSet allowedPairwiseCiphers; /** * The set of group ciphers supported by this configuration. * See for descriptions of the values. * Defaults to CCMP TKIP WEP104 WEP40. */ public BitSet allowedGroupCiphers; public WifiConfiguration() < networkId = -1; SSID = null; BSSID = null; priority = 0; hiddenSSID = false; allowedKeyManagement = new BitSet(); allowedProtocols = new BitSet(); allowedAuthAlgorithms = new BitSet(); allowedPairwiseCiphers = new BitSet(); allowedGroupCiphers = new BitSet(); wepKeys = new String[4]; for (int i = 0; i < wepKeys.length; i++) wepKeys[i] = null; for (EnterpriseField field : enterpriseFields) < field.setValue(null); >> public String toString() < StringBuffer sbuf = new StringBuffer(); if (this.status == WifiConfiguration.Status.CURRENT) < sbuf.append("* "); >else if (this.status == WifiConfiguration.Status.DISABLED) < sbuf.append("- "); >sbuf.append("ID: ").append(this.networkId).append(" SSID: ").append(this.SSID). append(" BSSID: ").append(this.BSSID).append(" PRIO: ").append(this.priority). append('\n'); sbuf.append(" KeyMgmt:"); for (int k = 0; k < this.allowedKeyManagement.size(); k++) < if (this.allowedKeyManagement.get(k)) < sbuf.append(" "); if (k < KeyMgmt.strings.length) < sbuf.append(KeyMgmt.strings[k]); >else < sbuf.append("??"); >> > sbuf.append(" Protocols:"); for (int p = 0; p < this.allowedProtocols.size(); p++) < if (this.allowedProtocols.get(p)) < sbuf.append(" "); if (p < Protocol.strings.length) < sbuf.append(Protocol.strings[p]); >else < sbuf.append("??"); >> > sbuf.append('\n'); sbuf.append(" AuthAlgorithms:"); for (int a = 0; a < this.allowedAuthAlgorithms.size(); a++) < if (this.allowedAuthAlgorithms.get(a)) < sbuf.append(" "); if (a < AuthAlgorithm.strings.length) < sbuf.append(AuthAlgorithm.strings[a]); >else < sbuf.append("??"); >> > sbuf.append('\n'); sbuf.append(" PairwiseCiphers:"); for (int pc = 0; pc < this.allowedPairwiseCiphers.size(); pc++) < if (this.allowedPairwiseCiphers.get(pc)) < sbuf.append(" "); if (pc < PairwiseCipher.strings.length) < sbuf.append(PairwiseCipher.strings[pc]); >else < sbuf.append("??"); >> > sbuf.append('\n'); sbuf.append(" GroupCiphers:"); for (int gc = 0; gc < this.allowedGroupCiphers.size(); gc++) < if (this.allowedGroupCiphers.get(gc)) < sbuf.append(" "); if (gc < GroupCipher.strings.length) < sbuf.append(GroupCipher.strings[gc]); >else < sbuf.append("??"); >> > sbuf.append('\n').append(" PSK: "); if (this.preSharedKey != null) < sbuf.append('*'); >for (EnterpriseField field : enterpriseFields) < sbuf.append('\n').append(" " + field.varName() + ": "); String value = field.value(); if (value != null) sbuf.append(value); >sbuf.append('\n'); return sbuf.toString(); > /** * Construct a WifiConfiguration from a scanned network * @param scannedAP the scan result used to construct the config entry * TODO: figure out whether this is a useful way to construct a new entry. * public WifiConfiguration(ScanResult scannedAP) < networkId = -1; SSID = scannedAP.SSID; BSSID = scannedAP.BSSID; >*/ private static BitSet readBitSet(Parcel src) < int cardinality = src.readInt(); BitSet set = new BitSet(); for (int i = 0; i < cardinality; i++) set.set(src.readInt()); return set; >private static void writeBitSet(Parcel dest, BitSet set) < int nextSetBit = -1; dest.writeInt(set.cardinality()); while ((nextSetBit = set.nextSetBit(nextSetBit + 1)) != -1) dest.writeInt(nextSetBit); >/** Implement the Parcelable interface */ public int describeContents() < return 0; >/** Implement the Parcelable interface */ public void writeToParcel(Parcel dest, int flags) < dest.writeInt(networkId); dest.writeInt(status); dest.writeString(SSID); dest.writeString(BSSID); dest.writeString(preSharedKey); for (String wepKey : wepKeys) dest.writeString(wepKey); dest.writeInt(wepTxKeyIndex); dest.writeInt(priority); dest.writeInt(hiddenSSID ? 1 : 0); writeBitSet(dest, allowedKeyManagement); writeBitSet(dest, allowedProtocols); writeBitSet(dest, allowedAuthAlgorithms); writeBitSet(dest, allowedPairwiseCiphers); writeBitSet(dest, allowedGroupCiphers); for (EnterpriseField field : enterpriseFields) < dest.writeString(field.value()); >> /** Implement the Parcelable interface */ public static final Creator CREATOR = new Creator() < public WifiConfiguration createFromParcel(Parcel in) < WifiConfiguration config = new WifiConfiguration(); config.networkId = in.readInt(); config.status = in.readInt(); config.SSID = in.readString(); config.BSSID = in.readString(); config.preSharedKey = in.readString(); for (int i = 0; i < config.wepKeys.length; i++) config.wepKeys[i] = in.readString(); config.wepTxKeyIndex = in.readInt(); config.priority = in.readInt(); config.hiddenSSID = in.readInt() != 0; config.allowedKeyManagement = readBitSet(in); config.allowedProtocols = readBitSet(in); config.allowedAuthAlgorithms = readBitSet(in); config.allowedPairwiseCiphers = readBitSet(in); config.allowedGroupCiphers = readBitSet(in); for (EnterpriseField field : config.enterpriseFields) < field.setValue(in.readString()); >return config; > public WifiConfiguration[] newArray(int size) < return new WifiConfiguration[size]; >>; >

Other Android examples (source code examples)

Here is a short list of links related to this Android WifiConfiguration.java source code file:

Источник

How to get the wifi configuration file location in android

I’m developing an app that backup the wifi configuration from any android device (rooted) so I want to know how to get the file location in the android device so can I deal with it. I know there is a lot of location depending on your ROM or device like /data/wifi/bcm_supp.conf or /data/misc/wifi/wpa_supplicant.conf but I want to get it dynamically .

Care to explain, are YOU saving these settings to some place or have these settings already saved at some location and you just want to find them out? and please share what you have done so far, this will help answering.

Check this out for a couple of locations, rest you have to find out with certain cases. alt236.blogspot.com/2011/04/…

1 Answer 1

You need to create a WifiConfiguration instance like this:

String networkSSID = "test"; String networkPass = "pass"; WifiConfiguration conf = new WifiConfiguration(); conf.SSID = "\"" + networkSSID + "\""; // 

Then, for WEP network you need to do this:

conf.wepKeys[0] = "\"" + networkPass + "\""; conf.wepTxKeyIndex = 0; conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 

For WPA network you need to add passphrase like this:

conf.preSharedKey = "\""+ networkPass +"\""; 

For Open network you need to do this:

 conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 

Then, you need to add it to Android Wi-Fi manager settings:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); wifiManager.add(conf); 

And finally, you might need to enable it, so Android connects to it:

List list = wifiManager.getConfiguredNetworks(); for (WifiConfiguration i : list) < if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) < wm.disconnect(); wm.enableNetwork(i.networkId, true); wm.reconnect(); break; >> 

In case of WEP, if your password is in hex, you do not need to surround it with quotation marks.

Источник

Читайте также:  Показать уровень сигнала wifi
Оцените статью
Adblock
detector