我正在开发一款Android应用,并希望在用户通过键盘或SearchView(AppCompat)的语音识别功能输入文本时,在搜索活动(获取意图)中进行区分。我如何区分这两者?
答案 0 :(得分:0)
要通过语音填充搜索,用户是否必须单击按钮才能发言?
答案 1 :(得分:0)
在我的应用中,我通过检查SearchManager.USER_QUERY
的值是否为空来确定。如果是,则表示用户没有键入任何文本来启动搜索,这意味着他们使用了语音搜索。我是这样做的:
@Override
protected void onNewIntent(Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SEARCH)) {
//if this was a voice search
if (intent.getStringExtra(SearchManager.USER_QUERY) == null) {
//do stuff with voice search query...
} else {
//perform search with text query
}
}
}
这个解决方案对我来说一直都很惹人讨厌,但这是我能做到的唯一方法,而且自从我实施以来它一直在完美运作。