diff options
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); |