在Android整机开发中碰到一个问题,在谷歌的快速搜索应用中,需要输入3个或以上的字符(中文or英文),程序才会进行匹配,并提供符合的音乐文件名称。产品那边要求改成1个字就匹配。所以一顿好找,终于找到问题所在。
android\frameworks\base\core\java\android\app\SearchableInfo.java
在该文件中,可以看到如下代码,定义了最小匹配字数,当小于该字数时,不一定匹配,但是大于等于该字数就一定会匹配。 mSuggestThreshold = a.getInt(
com.android.internal.R.styleable.Searchable_searchSuggestThreshold, 0);
注意看属性:
com.android.internal.R.styleable.Searchable_searchSuggestThreshold
对于音乐模块,该属性值实际来自:
music/res/xml/searchable.xml
该文件内容如下:
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/search_title"
android:hint="@string/search_hint"
android:includeInGlobalSearch="true"
android:searchSuggestAuthority="media"
android:searchSuggestPath="external/audio/search"
android:searchSuggestThreshold="3"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:searchSettingsDescription="@string/search_settings_description"
/>
所以,一目了然有没有!!只需要将里面的searchSuggestThreshold改成1即可。