In my application, I use SpeechRecognizer directly. I destroy SpeechRecognizer onPause from Activity, and I recreate it in the onResume method, as shown below ...
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; } }
When the application is installed through eclipse for the first time, the SpeechRecognition service is called and recognition is properly performed. But when the application returns from pause, if I try to recognize speech, I get the message "SpeechRecognition: not connect to detection service"
What am I doing wrong?
source share