Android Setting网络配置界面,删除已隐藏UI的快速搜索

我们知道,在Settting 中,可以通过快速搜索栏,直达自己想要到达的页面,这种配置,是通过以下方式实现的:

1、在显示类的内部实现Indexable,如:

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
                public List getXmlResourcesToIndex(
                        Context context, boolean enabled) {
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId = R.xml.auto_brightness_detail;
                    return Arrays.asList(sir);
                }
            };

这样,该页面的选项就可以被搜索到了。

至于其实现原理与数据库加载流程,可以参考以下这篇文章https://blog.csdn.net/qq_34149526/article/details/83341195

然而,网络配置不在此列,它所属的数据库是PhoneSearchIndexablesProvider.java,通

 queryNonIndexableKeys 中,把应该删除的条目添加进去,如
 cursor.addRow(createNonIndexableRow("enabled_networks_key" /* key */));这样就将网络开关隐藏了

你可能感兴趣的:(Android)