当Android RecognitionListener的onResults方法被调用两次时,可以考虑以下解决方法:
private boolean isResultsCalled = false;
...
@Override
public void onResults(Bundle results) {
if (!isResultsCalled) {
// 处理onResults方法的逻辑
isResultsCalled = true;
}
}
private SpeechRecognizer mSpeechRecognizer;
...
@Override
public void onResults(Bundle results) {
if (mSpeechRecognizer != null) {
mSpeechRecognizer.cancel();
}
// 处理onResults方法的逻辑
}
private RecognitionListener mRecognitionListener;
...
@Override
public void onResults(Bundle results) {
if (mRecognitionListener != null) {
mSpeechRecognizer.setRecognitionListener(null);
}
// 处理onResults方法的逻辑
if (mRecognitionListener != null) {
mSpeechRecognizer.setRecognitionListener(mRecognitionListener);
}
}
这些解决方法可以帮助你解决Android RecognitionListener的onResults方法被调用两次的问题。选择其中一个适合你的情况进行实现即可。