Android 8.1 自定义热点的时候设置了热点maxLength="32",但是在希伯来语等状态下还是发现在没到32个字符之前就无法把热点设置成功了
初步认为应该是与热点名称的字节数有关。
然后开始查看源码。
/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); } }