package ee.ioc.phon.android.speak.service; import android.content.Intent; import android.os.Handler; import android.text.TextUtils; import ee.ioc.phon.android.speak.utils.Utils; /** * Sends a growing number every few milliseconds for 3 seconds, finally sends * the input intent extras as the final result. Does not record audio. */ public class DemoRecognitionService extends AbstractRecognitionService { private Handler mHandler = new Handler(); private Runnable mRunnable; private String mIntentAsString; @Override void configure(Intent recognizerIntent) { mIntentAsString = TextUtils.join("\n", Utils.ppBundle(recognizerIntent.getExtras())); } @Override void connect() { mRunnable = new Runnable() { int counter = 0; public void run() { onPartialResults(toResultsBundle((++counter) + "")); mHandler.postDelayed(this, 500); } }; mHandler.postDelayed(mRunnable, 100); } @Override void disconnect() { if (mHandler != null) mHandler.removeCallbacks(mRunnable); } @Override void afterRecording(byte[] recording) { onResults(toResultsBundle(mIntentAsString)); } int getAutoStopAfterMillis() { return 3000; // We record for 3 seconds } }