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);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值