如何区分文本搜索和语音搜索?

时间:2016-03-17 20:36:20

标签: android searchview

我正在开发一款Android应用,并希望在用户通过键盘或SearchView(AppCompat)的语音识别功能输入文本时,在搜索活动(获取意图)中进行区分。我如何区分这两者?

2 个答案:

答案 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
        }

    }
}

这个解决方案对我来说一直都很惹人讨厌,但这是我能做到的唯一方法,而且自从我实施以来它一直在完美运作。