set softAP on a specified band, including both 2.4 and 5 GHz band

Bug:18929692
Change-Id: I455e9b17e5091596beb0246ccfd981c5d2b932f0
This commit is contained in:
xinhe
2015-01-07 17:41:51 -08:00
parent c3068f0788
commit 82ff3d5c56
3 changed files with 60 additions and 1 deletions

View File

@@ -66,6 +66,31 @@
style="@style/wifi_item_content" style="@style/wifi_item_content"
android:prompt="@string/wifi_security" android:prompt="@string/wifi_security"
android:entries="@array/wifi_ap_security" /> android:entries="@array/wifi_ap_security" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/wifi_item_label"
android:layout_marginTop="8dip"
android:text="@string/wifi_ap_band_config" />
<RadioGroup android:id = "@+id/choose_channel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/ap_2G_band"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_ap_choose_2G"
android:layout_marginTop="8dip"/>
<RadioButton android:id="@+id/ap_5G_band"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/wifi_ap_choose_5G"
android:layout_marginTop="8dip"/>
</RadioGroup>
</LinearLayout> </LinearLayout>
<LinearLayout android:id="@+id/fields" <LinearLayout android:id="@+id/fields"

View File

@@ -1577,6 +1577,12 @@
<string name="wifi_password">Password</string> <string name="wifi_password">Password</string>
<!-- Label for the check box to show password --> <!-- Label for the check box to show password -->
<string name="wifi_show_password">Show password</string> <string name="wifi_show_password">Show password</string>
<!-- Label for the RadioGroup to choose wifi ap band -->
<string name="wifi_ap_band_config">Config AP Band</string>
<!-- Label for the radio button to choose wifi ap 2.4 GHz band -->
<string name="wifi_ap_choose_2G">2.4 GHz Band</string>
<!-- Label for the radio button to choose wifi ap 5GHz band -->
<string name="wifi_ap_choose_5G">5 GHz Band</string>
<!-- Label for the spinner to show ip settings [CHAR LIMIT=25] --> <!-- Label for the spinner to show ip settings [CHAR LIMIT=25] -->
<string name="wifi_ip_settings">IP settings</string> <string name="wifi_ip_settings">IP settings</string>
<!-- Hint for unchanged fields --> <!-- Hint for unchanged fields -->

View File

@@ -32,9 +32,13 @@ import android.widget.CheckBox;
import android.widget.EditText; import android.widget.EditText;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.widget.RadioGroup;
import android.widget.RadioButton;
import com.android.settings.R; import com.android.settings.R;
import android.util.Log;
/** /**
* Dialog to configure the SSID and security settings * Dialog to configure the SSID and security settings
* for Access Point operation * for Access Point operation
@@ -53,8 +57,12 @@ public class WifiApDialog extends AlertDialog implements View.OnClickListener,
private TextView mSsid; private TextView mSsid;
private int mSecurityTypeIndex = OPEN_INDEX; private int mSecurityTypeIndex = OPEN_INDEX;
private EditText mPassword; private EditText mPassword;
private RadioGroup mChannel;
private RadioButton mChannel2G;
private RadioButton mChannel5G;
WifiConfiguration mWifiConfig; WifiConfiguration mWifiConfig;
private static final String TAG = "WifiApDialog";
public WifiApDialog(Context context, DialogInterface.OnClickListener listener, public WifiApDialog(Context context, DialogInterface.OnClickListener listener,
WifiConfiguration wifiConfig) { WifiConfiguration wifiConfig) {
@@ -85,6 +93,16 @@ public class WifiApDialog extends AlertDialog implements View.OnClickListener,
*/ */
config.SSID = mSsid.getText().toString(); config.SSID = mSsid.getText().toString();
//obtain the band configure
if (mChannel2G.isChecked()) {
config.apBand = 0;
} else if(mChannel5G.isChecked()) {
config.apBand = 1;
} else {
Log.e("TAG", "AP band configure error!");
return null;
}
switch (mSecurityTypeIndex) { switch (mSecurityTypeIndex) {
case OPEN_INDEX: case OPEN_INDEX:
config.allowedKeyManagement.set(KeyMgmt.NONE); config.allowedKeyManagement.set(KeyMgmt.NONE);
@@ -118,12 +136,22 @@ public class WifiApDialog extends AlertDialog implements View.OnClickListener,
mSsid = (TextView) mView.findViewById(R.id.ssid); mSsid = (TextView) mView.findViewById(R.id.ssid);
mPassword = (EditText) mView.findViewById(R.id.password); mPassword = (EditText) mView.findViewById(R.id.password);
mChannel = (RadioGroup) mView.findViewById(R.id.choose_channel);
mChannel2G = (RadioButton) mView.findViewById(R.id.ap_2G_band);
mChannel5G = (RadioButton) mView.findViewById(R.id.ap_5G_band);
setButton(BUTTON_SUBMIT, context.getString(R.string.wifi_save), mListener); setButton(BUTTON_SUBMIT, context.getString(R.string.wifi_save), mListener);
setButton(DialogInterface.BUTTON_NEGATIVE, setButton(DialogInterface.BUTTON_NEGATIVE,
context.getString(R.string.wifi_cancel), mListener); context.getString(R.string.wifi_cancel), mListener);
if (mWifiConfig != null) { if (mWifiConfig != null) {
mSsid.setText(mWifiConfig.SSID); mSsid.setText(mWifiConfig.SSID);
if (mWifiConfig.apBand == 0) {
mChannel2G.setChecked(true);
} else {
mChannel5G.setChecked(true);
}
mSecurity.setSelection(mSecurityTypeIndex); mSecurity.setSelection(mSecurityTypeIndex);
if (mSecurityTypeIndex == WPA2_INDEX) { if (mSecurityTypeIndex == WPA2_INDEX) {
mPassword.setText(mWifiConfig.preSharedKey); mPassword.setText(mWifiConfig.preSharedKey);