diff options
author | Bruno Randolf <br1@einfach.org> | 2013-02-02 11:09:55 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2013-03-24 16:12:47 -0700 |
commit | d464e60ad07cf0bdb424ffa83e98756ecfd678e8 (patch) | |
tree | 84d6f5cde2988f027ac72577c3a213e8c0748e7e /wifi | |
parent | 21b88245d868a976df2f03301a0baa79540efb1b (diff) | |
download | frameworks_base-d464e60ad07cf0bdb424ffa83e98756ecfd678e8.zip frameworks_base-d464e60ad07cf0bdb424ffa83e98756ecfd678e8.tar.gz frameworks_base-d464e60ad07cf0bdb424ffa83e98756ecfd678e8.tar.bz2 |
Wifi: Enable Ad-Hoc (IBSS) network configuration
This adds two public but hidden variables to WifiConfiguration: isIBSS and
frequency. These are used for configuring IBSS mode.
WifiConfigStore is exended to get and set these variables to wpa_supplicant
(via WifiNative).
Change-Id: Iab02c3d738c05c2de036350ea77b78789213e357
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/WifiConfigStore.java | 35 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiConfiguration.java | 24 |
2 files changed, 59 insertions, 0 deletions
diff --git a/wifi/java/android/net/wifi/WifiConfigStore.java b/wifi/java/android/net/wifi/WifiConfigStore.java index 84506b6..f77ece3 100644 --- a/wifi/java/android/net/wifi/WifiConfigStore.java +++ b/wifi/java/android/net/wifi/WifiConfigStore.java @@ -1004,6 +1004,23 @@ class WifiConfigStore { break setVariables; } + if (config.isIBSS) { + if(!mWifiNative.setNetworkVariable( + netId, + WifiConfiguration.modeVarName, + "1")) { + loge("failed to set adhoc mode"); + break setVariables; + } + if(!mWifiNative.setNetworkVariable( + netId, + WifiConfiguration.frequencyVarName, + Integer.toString(config.frequency))) { + loge("failed to set frequency"); + break setVariables; + } + } + String allowedKeyManagementString = makeString(config.allowedKeyManagement, WifiConfiguration.KeyMgmt.strings); if (config.allowedKeyManagement.cardinality() != 0 && @@ -1354,6 +1371,24 @@ class WifiConfigStore { } } + value = mWifiNative.getNetworkVariable(netId, WifiConfiguration.modeVarName); + config.isIBSS = false; + if (!TextUtils.isEmpty(value)) { + try { + config.isIBSS = Integer.parseInt(value) != 0; + } catch (NumberFormatException ignore) { + } + } + + value = mWifiNative.getNetworkVariable(netId, WifiConfiguration.frequencyVarName); + config.frequency = 0; + if (!TextUtils.isEmpty(value)) { + try { + config.frequency = Integer.parseInt(value); + } catch (NumberFormatException ignore) { + } + } + value = mWifiNative.getNetworkVariable(netId, WifiConfiguration.wepTxKeyIdxVarName); config.wepTxKeyIndex = -1; if (!TextUtils.isEmpty(value)) { diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java index c4fe1b4..162862b 100644 --- a/wifi/java/android/net/wifi/WifiConfiguration.java +++ b/wifi/java/android/net/wifi/WifiConfiguration.java @@ -77,6 +77,10 @@ public class WifiConfiguration implements Parcelable { /** {@hide} */ public static final String hiddenSSIDVarName = "scan_ssid"; /** {@hide} */ + public static final String modeVarName = "mode"; + /** {@hide} */ + public static final String frequencyVarName = "frequency"; + /** {@hide} */ public static final int INVALID_NETWORK_ID = -1; /** {@hide} */ @@ -327,6 +331,18 @@ public class WifiConfiguration implements Parcelable { */ public boolean hiddenSSID; + /** + * This is an Ad-Hoc (IBSS) network + * {@hide} + */ + public boolean isIBSS; + + /** + * Frequency of the Ad-Hoc (IBSS) network, if newly created + * {@hide} + */ + public int frequency; + /** * The set of key management protocols supported by this configuration. * See {@link KeyMgmt} for descriptions of the values. @@ -405,6 +421,8 @@ public class WifiConfiguration implements Parcelable { BSSID = null; priority = 0; hiddenSSID = false; + isIBSS = false; + frequency = 0; disableReason = DISABLED_UNKNOWN_REASON; allowedKeyManagement = new BitSet(); allowedProtocols = new BitSet(); @@ -600,6 +618,8 @@ public class WifiConfiguration implements Parcelable { wepTxKeyIndex = source.wepTxKeyIndex; priority = source.priority; hiddenSSID = source.hiddenSSID; + isIBSS = source.isIBSS; + frequency = source.frequency; allowedKeyManagement = (BitSet) source.allowedKeyManagement.clone(); allowedProtocols = (BitSet) source.allowedProtocols.clone(); allowedAuthAlgorithms = (BitSet) source.allowedAuthAlgorithms.clone(); @@ -628,6 +648,8 @@ public class WifiConfiguration implements Parcelable { dest.writeInt(wepTxKeyIndex); dest.writeInt(priority); dest.writeInt(hiddenSSID ? 1 : 0); + dest.writeInt(isIBSS ? 1 : 0); + dest.writeInt(frequency); writeBitSet(dest, allowedKeyManagement); writeBitSet(dest, allowedProtocols); @@ -659,6 +681,8 @@ public class WifiConfiguration implements Parcelable { config.wepTxKeyIndex = in.readInt(); config.priority = in.readInt(); config.hiddenSSID = in.readInt() != 0; + config.isIBSS = in.readInt() != 0; + config.frequency = in.readInt(); config.allowedKeyManagement = readBitSet(in); config.allowedProtocols = readBitSet(in); config.allowedAuthAlgorithms = readBitSet(in); |