Loading api/current.xml +183 −0 Original line number Diff line number Diff line Loading @@ -98703,6 +98703,16 @@ visibility="public" > </field> <field name="adhocSSID" type="boolean" transient="false" volatile="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </field> <field name="allowedAuthAlgorithms" type="java.util.BitSet" transient="false" Loading Loading @@ -98753,6 +98763,16 @@ visibility="public" > </field> <field name="frequency" type="int" transient="false" volatile="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </field> <field name="hiddenSSID" type="boolean" transient="false" Loading Loading @@ -98889,6 +98909,169 @@ > </field> </class> <class name="WifiConfiguration.ChannelFrequency" extends="java.lang.Object" abstract="false" static="true" final="false" deprecated="not deprecated" visibility="public" > <field name="CHANNEL_1" type="int" transient="false" volatile="false" value="2412" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_10" type="int" transient="false" volatile="false" value="2457" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_11" type="int" transient="false" volatile="false" value="2462" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_12" type="int" transient="false" volatile="false" value="2467" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_13" type="int" transient="false" volatile="false" value="2472" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_14" type="int" transient="false" volatile="false" value="2484" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_2" type="int" transient="false" volatile="false" value="2417" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_3" type="int" transient="false" volatile="false" value="2422" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_4" type="int" transient="false" volatile="false" value="2427" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_5" type="int" transient="false" volatile="false" value="2432" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_6" type="int" transient="false" volatile="false" value="2437" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_7" type="int" transient="false" volatile="false" value="2442" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_8" type="int" transient="false" volatile="false" value="2447" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_9" type="int" transient="false" volatile="false" value="2452" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </class> <class name="WifiConfiguration.GroupCipher" extends="java.lang.Object" abstract="false" core/jni/android_net_wifi_Wifi.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -454,8 +454,6 @@ static jboolean android_net_wifi_setBluetoothCoexistenceScanModeCommand(JNIEnv* static jboolean android_net_wifi_saveConfigCommand(JNIEnv* env, jobject clazz) { // Make sure we never write out a value for AP_SCAN other than 1 (void)doBooleanCommand("AP_SCAN 1", "OK"); return doBooleanCommand("SAVE_CONFIG", "OK"); } Loading services/java/com/android/server/WifiService.java +59 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ import com.android.internal.R; */ public class WifiService extends IWifiManager.Stub { private static final String TAG = "WifiService"; private static final boolean DBG = false; private static final boolean DBG = true; private static final Pattern scanResultPattern = Pattern.compile("\t+"); private final WifiStateTracker mWifiStateTracker; /* TODO: fetch a configurable interface */ Loading Loading @@ -905,6 +905,15 @@ public class WifiService extends IWifiManager.Stub { } } value = mWifiStateTracker.getNetworkVariable(netId, WifiConfiguration.modeVarName); config.adhocSSID = false; if (!TextUtils.isEmpty(value)) { try { config.adhocSSID = Integer.parseInt(value) != 0; } catch (NumberFormatException ignore) { } } value = mWifiStateTracker.getNetworkVariable(netId, WifiConfiguration.wepTxKeyIdxVarName); config.wepTxKeyIndex = -1; if (!TextUtils.isEmpty(value)) { Loading Loading @@ -1083,6 +1092,55 @@ public class WifiService extends IWifiManager.Stub { break setVariables; } if(config.adhocSSID) { if (DBG) { Slog.d(TAG, "setting adhoc network"); } //Set Adhoc Mode if (!mWifiStateTracker.setNetworkVariable( netId, WifiConfiguration.modeVarName, config.modeAdhoc)) { if (DBG) { Slog.d(TAG, "failed to set adhoc mode: " + config.adhocSSID); } break setVariables; } String frequency; if (config.frequency != 0) { frequency = Integer.toString(config.frequency); } else { //Default to channel 11 frequency = Integer.toString(WifiConfiguration.ChannelFrequency.CHANNEL_11); } //Set frequency if (!mWifiStateTracker.setNetworkVariable( netId, WifiConfiguration.frequencyVarName, frequency)) { if (DBG) { Slog.d(TAG, "failed to set frequency: " + frequency); } break setVariables; } } else { if (DBG) { Slog.d(TAG, "setting non adhoc network"); } //Set Infrastructure Mode if (!mWifiStateTracker.setNetworkVariable( netId, WifiConfiguration.modeVarName, config.modeInfrastructure)) { if (DBG) { Slog.d(TAG, "failed to set infrastructure mode: " + config.adhocSSID); } break setVariables; } } String allowedKeyManagementString = makeString(config.allowedKeyManagement, WifiConfiguration.KeyMgmt.strings); if (config.allowedKeyManagement.cardinality() != 0 && Loading wifi/java/android/net/wifi/WifiConfiguration.java +52 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,41 @@ public class WifiConfiguration implements Parcelable { public static final String priorityVarName = "priority"; /** {@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 String modeInfrastructure = "0"; /** {@hide} */ public static final String modeAdhoc = "1"; /** * Channel Frequency Values, to be used for setting up Adhoc Networks */ public static class ChannelFrequency { private ChannelFrequency() { } /** Channel Frequencies by Channel Number * Allowed use may vary by region * USA allows use of channels 1 through 11 * Europe allows channels 1 through 13 * Japan uses all channels, with 14 restricted to 802.11b traffic */ public static final int CHANNEL_1 = 2412; public static final int CHANNEL_2 = 2417; public static final int CHANNEL_3 = 2422; public static final int CHANNEL_4 = 2427; public static final int CHANNEL_5 = 2432; public static final int CHANNEL_6 = 2437; public static final int CHANNEL_7 = 2442; public static final int CHANNEL_8 = 2447; public static final int CHANNEL_9 = 2452; public static final int CHANNEL_10 = 2457; public static final int CHANNEL_11 = 2462; public static final int CHANNEL_12 = 2467; public static final int CHANNEL_13 = 2472; public static final int CHANNEL_14 = 2484; } /** {@hide} */ public class EnterpriseField { Loading Loading @@ -263,6 +298,17 @@ public class WifiConfiguration implements Parcelable { */ public boolean hiddenSSID; /** * This is a adhoc network */ public boolean adhocSSID; /** * If the signal is Adhoc, then frequency must be set * otherwise, we don't care what the frequency is */ public int frequency; /** * The set of key management protocols supported by this configuration. * See {@link KeyMgmt} for descriptions of the values. Loading Loading @@ -300,6 +346,8 @@ public class WifiConfiguration implements Parcelable { SSID = null; BSSID = null; priority = 0; frequency = 0; adhocSSID = false; hiddenSSID = false; allowedKeyManagement = new BitSet(); allowedProtocols = new BitSet(); Loading Loading @@ -444,6 +492,8 @@ public class WifiConfiguration implements Parcelable { dest.writeInt(wepTxKeyIndex); dest.writeInt(priority); dest.writeInt(hiddenSSID ? 1 : 0); dest.writeInt(adhocSSID ? 1 : 0); dest.writeInt(frequency); writeBitSet(dest, allowedKeyManagement); writeBitSet(dest, allowedProtocols); Loading Loading @@ -471,6 +521,8 @@ public class WifiConfiguration implements Parcelable { config.wepTxKeyIndex = in.readInt(); config.priority = in.readInt(); config.hiddenSSID = in.readInt() != 0; config.adhocSSID = in.readInt() != 0; config.frequency = in.readInt(); config.allowedKeyManagement = readBitSet(in); config.allowedProtocols = readBitSet(in); config.allowedAuthAlgorithms = readBitSet(in); Loading Loading
api/current.xml +183 −0 Original line number Diff line number Diff line Loading @@ -98703,6 +98703,16 @@ visibility="public" > </field> <field name="adhocSSID" type="boolean" transient="false" volatile="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </field> <field name="allowedAuthAlgorithms" type="java.util.BitSet" transient="false" Loading Loading @@ -98753,6 +98763,16 @@ visibility="public" > </field> <field name="frequency" type="int" transient="false" volatile="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </field> <field name="hiddenSSID" type="boolean" transient="false" Loading Loading @@ -98889,6 +98909,169 @@ > </field> </class> <class name="WifiConfiguration.ChannelFrequency" extends="java.lang.Object" abstract="false" static="true" final="false" deprecated="not deprecated" visibility="public" > <field name="CHANNEL_1" type="int" transient="false" volatile="false" value="2412" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_10" type="int" transient="false" volatile="false" value="2457" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_11" type="int" transient="false" volatile="false" value="2462" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_12" type="int" transient="false" volatile="false" value="2467" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_13" type="int" transient="false" volatile="false" value="2472" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_14" type="int" transient="false" volatile="false" value="2484" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_2" type="int" transient="false" volatile="false" value="2417" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_3" type="int" transient="false" volatile="false" value="2422" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_4" type="int" transient="false" volatile="false" value="2427" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_5" type="int" transient="false" volatile="false" value="2432" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_6" type="int" transient="false" volatile="false" value="2437" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_7" type="int" transient="false" volatile="false" value="2442" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_8" type="int" transient="false" volatile="false" value="2447" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="CHANNEL_9" type="int" transient="false" volatile="false" value="2452" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </class> <class name="WifiConfiguration.GroupCipher" extends="java.lang.Object" abstract="false"
core/jni/android_net_wifi_Wifi.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -454,8 +454,6 @@ static jboolean android_net_wifi_setBluetoothCoexistenceScanModeCommand(JNIEnv* static jboolean android_net_wifi_saveConfigCommand(JNIEnv* env, jobject clazz) { // Make sure we never write out a value for AP_SCAN other than 1 (void)doBooleanCommand("AP_SCAN 1", "OK"); return doBooleanCommand("SAVE_CONFIG", "OK"); } Loading
services/java/com/android/server/WifiService.java +59 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ import com.android.internal.R; */ public class WifiService extends IWifiManager.Stub { private static final String TAG = "WifiService"; private static final boolean DBG = false; private static final boolean DBG = true; private static final Pattern scanResultPattern = Pattern.compile("\t+"); private final WifiStateTracker mWifiStateTracker; /* TODO: fetch a configurable interface */ Loading Loading @@ -905,6 +905,15 @@ public class WifiService extends IWifiManager.Stub { } } value = mWifiStateTracker.getNetworkVariable(netId, WifiConfiguration.modeVarName); config.adhocSSID = false; if (!TextUtils.isEmpty(value)) { try { config.adhocSSID = Integer.parseInt(value) != 0; } catch (NumberFormatException ignore) { } } value = mWifiStateTracker.getNetworkVariable(netId, WifiConfiguration.wepTxKeyIdxVarName); config.wepTxKeyIndex = -1; if (!TextUtils.isEmpty(value)) { Loading Loading @@ -1083,6 +1092,55 @@ public class WifiService extends IWifiManager.Stub { break setVariables; } if(config.adhocSSID) { if (DBG) { Slog.d(TAG, "setting adhoc network"); } //Set Adhoc Mode if (!mWifiStateTracker.setNetworkVariable( netId, WifiConfiguration.modeVarName, config.modeAdhoc)) { if (DBG) { Slog.d(TAG, "failed to set adhoc mode: " + config.adhocSSID); } break setVariables; } String frequency; if (config.frequency != 0) { frequency = Integer.toString(config.frequency); } else { //Default to channel 11 frequency = Integer.toString(WifiConfiguration.ChannelFrequency.CHANNEL_11); } //Set frequency if (!mWifiStateTracker.setNetworkVariable( netId, WifiConfiguration.frequencyVarName, frequency)) { if (DBG) { Slog.d(TAG, "failed to set frequency: " + frequency); } break setVariables; } } else { if (DBG) { Slog.d(TAG, "setting non adhoc network"); } //Set Infrastructure Mode if (!mWifiStateTracker.setNetworkVariable( netId, WifiConfiguration.modeVarName, config.modeInfrastructure)) { if (DBG) { Slog.d(TAG, "failed to set infrastructure mode: " + config.adhocSSID); } break setVariables; } } String allowedKeyManagementString = makeString(config.allowedKeyManagement, WifiConfiguration.KeyMgmt.strings); if (config.allowedKeyManagement.cardinality() != 0 && Loading
wifi/java/android/net/wifi/WifiConfiguration.java +52 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,41 @@ public class WifiConfiguration implements Parcelable { public static final String priorityVarName = "priority"; /** {@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 String modeInfrastructure = "0"; /** {@hide} */ public static final String modeAdhoc = "1"; /** * Channel Frequency Values, to be used for setting up Adhoc Networks */ public static class ChannelFrequency { private ChannelFrequency() { } /** Channel Frequencies by Channel Number * Allowed use may vary by region * USA allows use of channels 1 through 11 * Europe allows channels 1 through 13 * Japan uses all channels, with 14 restricted to 802.11b traffic */ public static final int CHANNEL_1 = 2412; public static final int CHANNEL_2 = 2417; public static final int CHANNEL_3 = 2422; public static final int CHANNEL_4 = 2427; public static final int CHANNEL_5 = 2432; public static final int CHANNEL_6 = 2437; public static final int CHANNEL_7 = 2442; public static final int CHANNEL_8 = 2447; public static final int CHANNEL_9 = 2452; public static final int CHANNEL_10 = 2457; public static final int CHANNEL_11 = 2462; public static final int CHANNEL_12 = 2467; public static final int CHANNEL_13 = 2472; public static final int CHANNEL_14 = 2484; } /** {@hide} */ public class EnterpriseField { Loading Loading @@ -263,6 +298,17 @@ public class WifiConfiguration implements Parcelable { */ public boolean hiddenSSID; /** * This is a adhoc network */ public boolean adhocSSID; /** * If the signal is Adhoc, then frequency must be set * otherwise, we don't care what the frequency is */ public int frequency; /** * The set of key management protocols supported by this configuration. * See {@link KeyMgmt} for descriptions of the values. Loading Loading @@ -300,6 +346,8 @@ public class WifiConfiguration implements Parcelable { SSID = null; BSSID = null; priority = 0; frequency = 0; adhocSSID = false; hiddenSSID = false; allowedKeyManagement = new BitSet(); allowedProtocols = new BitSet(); Loading Loading @@ -444,6 +492,8 @@ public class WifiConfiguration implements Parcelable { dest.writeInt(wepTxKeyIndex); dest.writeInt(priority); dest.writeInt(hiddenSSID ? 1 : 0); dest.writeInt(adhocSSID ? 1 : 0); dest.writeInt(frequency); writeBitSet(dest, allowedKeyManagement); writeBitSet(dest, allowedProtocols); Loading Loading @@ -471,6 +521,8 @@ public class WifiConfiguration implements Parcelable { config.wepTxKeyIndex = in.readInt(); config.priority = in.readInt(); config.hiddenSSID = in.readInt() != 0; config.adhocSSID = in.readInt() != 0; config.frequency = in.readInt(); config.allowedKeyManagement = readBitSet(in); config.allowedProtocols = readBitSet(in); config.allowedAuthAlgorithms = readBitSet(in); Loading