初步认为应该是与热点名称的字节数有关。
然后开始查看源码。
/Settings/res/xml/tether_prefs.xml
中的
<Preference
android:key="hotspot_settings"
android:title="@string/hotspot_preference_title"
android:fragment="com.sprd.settings.wifi.HotspotSettings" />
发现了热点设置界面在HotspotSettings 里面,
在HotspotSettings中点击设置wifi热点,进入/Settings/src/com/android/settings/wifi/WifiApDialog.java
弹框
里面的热点名称和密码设置了text改变的监听,收到监听之后会改变保持按钮的Enable状态。
mSsid.addTextChangedListener(this);
mPassword.addTextChangedListener(this);
public void afterTextChanged(Editable editable) {
validate();
}
private void validate() {
String mSsidString = mSsid.getText().toString();
if ((mSsid != null && mSsid.length() == 0)
|| ((mSecurityTypeIndex == WPA2_INDEX || mSecurityTypeIndex == WPA_INDEX) && mPassword.length() < 8)
|| (mSsid != null &&
Charset.forName("UTF-8").encode(mSsidString).limit() > 32)) {
getButton(BUTTON_SUBMIT).setEnabled(false);
} else {
getButton(BUTTON_SUBMIT).setEnabled(true);
}
}