【发布时间】:2010-01-27 07:35:27
【问题描述】:
在我的 searchable.xml 中,我有:
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
我得到返回 SearchManager 的搜索字符串,如下所示:
if (Intent.ACTION_SEARCH.equals(action)) {
searchString = intent.getStringExtra(SearchManager.QUERY);
}
有没有办法从意图中获得搜索字符串是来自键盘,还是来自语音搜索和语音识别器的结果?
我知道我可以放置以下实体:
<actionkey android:keycode="KEYCODE_SEARCH" android:queryActionMsg="search"/> <actionkey android:keycode="KEYCODE_ENTER" android:queryActionMsg="enter"/>
在我的 searchable.xml 文件中,然后使用 intent.getIntExtra(SearchManager.ACTION_KEY,-999) 查看搜索是否开始是因为用户按了键盘上的 Enter 键,或者硬件搜索按钮,但我看不到如何检测到搜索是从“麦克风”图标按钮或搜索栏中的“搜索”图标按钮开始的。
(在语音搜索的情况下,我需要在进行进一步的网络查找时将文本回显给用户。对于文本搜索,回显用户刚刚输入的内容是多余的。)
我如何区分?
【问题讨论】:
标签: android