Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – SpeechRecognizer:未连接到识别服务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用中,我直接使用SpeechRecognizer.我销毁SpeechRecognizer onPause的活动,我在onResume方法中重新创建它,如下所示…

public class NoUISpeechActivity extends Activity {

protected static final String CLASS_TAG = "NoUISpeechActivity";
private SpeechRecognizer sr;


@Override
public void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE);
    setContentView(R.layout.activity_no_uispeech);

    sr = getSpeechRecognizer();
}

@Override
protected void onPause() {

    Log.i(CLASS_TAG,"on pause called");
    if(sr!=null){
        sr.stopListening();
        sr.cancel();
        sr.destroy();       

    }

    super.onPause();
}


@Override
protected void onResume() {

    Log.i(CLASS_TAG,"on resume called");       

    sr = getSpeechRecognizer();

    super.onResume();
}

....

private SpeechRecognizer getSpeechRecognizer() {
    if(sr == null){
        sr = SpeechRecognizer.createSpeechRecognizer(getApplicationContext());
        CustomRecognizerListner listner = new CustomRecognizerListner();
        listner.setOnListeningCallBACk(new OnListeningCallBACkImp());
        sr.setRecognitionListener(listner);
    }
    return sr;
}
}

当应用程序首次通过eclipse安装时,会调用SpeechRecognition服务并正确识别.但是当应用程序从暂停状态恢复时,如果我尝试识别语音,我会收到“SpeechRecognition:not connect to recognition service”错误

我究竟做错了什么 ?

解决方法

我找到了问题的原因.在onPause方法调用了SpeechRecognition.destroy()方法,但我猜它只是分离服务但是对象sr将指向某个实例并且它不会为null.将对象sr重置为null可以解决问题.

不破坏onPause方法中的SpeechRecognition对象会阻止其他应用程序使用SpeechRecognition服务

@Override
protected void onPause() {

    Log.i(CLASS_TAG,"on pause called");
    if(sr!=null){
        sr.stopListening();
        sr.cancel();
        sr.destroy();              

    }
    sr = null;

    super.onPause();
}

大佬总结

以上是大佬教程为你收集整理的android – SpeechRecognizer:未连接到识别服务全部内容,希望文章能够帮你解决android – SpeechRecognizer:未连接到识别服务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。