安卓16 设置-网络和互联网中,点击SIM card 不应该提示“WLAN暂时无法自动连接 ”

19 阅读1分钟

问题描述

企业微信截图_17663968031179.png 如题如图,在插入sim卡后,设置中点击---网络和互联网---互联网---再点击china unicom,会弹出“WLAN暂时无法自动连接”,我们的目的是直接隐藏掉这个china unicom选项,这样就不会出现点击的情况。

修改

我们根据互联网关键字,找到这个页面布局的xml为network_provider_settings.xml,这个china unicom选择在xml中对应的是title="summary_placeholder",这是一个占位符,会根据你插入的不同sim卡显示不同,在这里,如果你直接注释掉整个PreferenceCategory后设置会闪退,将isPreferenceVisible改为false也不会起作用,需要修改NetworkMobileProviderController

<PreferenceCategory
        android:key="provider_model_mobile_network"
        android:title="@string/summary_placeholder"
        android:layout="@layout/preference_category_no_label"
        settings:isPreferenceVisible="@bool/config_show_sim_info"
        settings:controller="com.android.settings.network.NetworkMobileProviderController"/>

修改NetworkMobileProviderController的函数getAvailabilityStatus,把原来的代码注释到,让它直接返回CONDITIONALLY_UNAVAILABLE

// NetworkMobileProviderController.java
@Override

    public int getAvailabilityStatus() {
        return CONDITIONALLY_UNAVAILABLE;
        // if (mHide || mSubscriptionsController == null) {
        //     return CONDITIONALLY_UNAVAILABLE;
        // }
        // return mSubscriptionsController.isAvailable() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;

    }

会实现的效果是,china unicom确实是消失了,但是wifi列表下方出现了一个蓝色横条,根本原因不清楚,应该是跟我们隐藏了china unicom元素有关,具体是xml中的选项allowDividerAbove,这个选项作用是在该设置项的上方显示一条分割线,按照如下修改就可以解决,allowDividerAbove由true改为false:

<!-- network_provider_settings.xml -->
<!-- change allowDividerAbove from true to false, to  Hide blue stripes -->
    <Preference
        android:key="configure_network_settings"
        android:title="@string/network_and_internet_preferences_title"
        settings:allowDividerAbove="false"
        android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>

    <Preference