Android将字符串与RecognitionListener进行比较时遇到问题

时间:2014-11-12 18:15:39

标签: android speech-recognition string-comparison

最让我烦恼的是;我有另一个使用不同方法的活动(使用startActivityForResult(intent ....)vs一个实现RecognitionListener的监听器类,另一个使用另一个不做的事情。我确定我做了一些愚蠢的事情。错了,但我肯定无法弄清楚是什么。

我使用onResults获取语音recog结果,使用实现RecognitionListener的侦听器类。

 public void onResults(Bundle results) {
            Log.d("Speech", "onResults");
            ArrayList strlist = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
            for (int i = 0; i < strlist.size(); i++) {
                String matchstring = matchpair[1].toString().toLowerCase();
                String speechstring = strlist.get(i).toString().toLowerCase();
                Log.d("Speech", "result=" + speechstring);

                if (checkResult(matchstring, speechstring)) {
                    System.out.println("Phonetic match: " + speechstring + " = " + matchstring);
                } else  System.out.println("NO match: " + speechstring + " = " + matchstring);

            }
        }

checkresult很简单,只是一个布尔比较:

public boolean checkResult(String result, String checkmatch) {
            if (result.equals(checkmatch))
            {

                return true;
            }
        return false;
        }

查看调试信息,结果出现进行比较 - 但布尔值返回false。

它让我疯了。我正在走这条路线,所以我可以使用识别功能,而不会在每次识别尝试时弹出Google对话框。在我开始的活动中,比较是完美的。

我欢迎有人指出我忽略的任何非常愚蠢的事情。

0 个答案:

没有答案