我们知道,在Settting 中,可以通过快速搜索栏,直达自己想要到达的页面,这种配置,是通过以下方式实现的:
1、在显示类的内部实现Indexable,如:
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> 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 */));这样就将网络开关隐藏了