Java Android服务中的触发语音识别
我一直在试图找到一种在服务(后台运行)中实现语音识别器API的方法,以便在满足条件时,它将打开语音识别器,而不必在应用程序中。我的问题是,这是否可能是天生的?如果是这样的话,该怎么做呢?这是我的代码片段。您可以在服务中像这样使用识别侦听器。 我不知道你是如何安排你的服务,我已经留给你了。但你可以这样做。(我没有在计时器中添加重新启动服务/启动服务的代码等)Java Android服务中的触发语音识别,java,android,text-to-speech,speech,Java,Android,Text To Speech,Speech,我一直在试图找到一种在服务(后台运行)中实现语音识别器API的方法,以便在满足条件时,它将打开语音识别器,而不必在应用程序中。我的问题是,这是否可能是天生的?如果是这样的话,该怎么做呢?这是我的代码片段。您可以在服务中像这样使用识别侦听器。 我不知道你是如何安排你的服务,我已经留给你了。但你可以这样做。(我没有在计时器中添加重新启动服务/启动服务的代码等) 这是我的代码片段。您可以在服务中像这样使用识别侦听器。 我不知道你是如何安排你的服务,我已经留给你了。但你可以这样做。(我没有在计时器中添加
这是我的代码片段。您可以在服务中像这样使用识别侦听器。 我不知道你是如何安排你的服务,我已经留给你了。但你可以这样做。(我没有在计时器中添加重新启动服务/启动服务的代码等)
到目前为止你做了什么?在后台运行SpeechRecognizer不是一个好主意,因为它会消耗太多的电池、互联网和其他资源。我不会在后台运行它,它会在满足条件时触发。你知道SpeechRecognizer使用自定义侦听器而不是Google提示符吗?到目前为止你做了什么?在后台运行SpeechRecognizer不是一个好主意,因为它消耗了太多的电池、互联网和其他资源。我不会在后台运行它,它会在满足条件时触发。你知道SpeechRecognizer使用自定义侦听器而不是谷歌提示符吗?太棒了!谢谢,没问题。干杯令人惊叹的!谢谢,没问题。干杯
public class MyService extends Service {
protected static SpeechRecognizer mSpeechRecognizer;
protected Intent mSpeechRecognizerIntent;
Context c;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//if condition is met then do this
SpeechRecognitionListener h = new SpeechRecognitionListener();
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
mSpeechRecognizer.setRecognitionListener(h);
mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
Log.d("avail", " " + mSpeechRecognizer.isRecognitionAvailable(this));
if (mSpeechRecognizer.isRecognitionAvailable(this))
Log.d("created", "onBeginingOfSpeech");
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
this.getPackageName());
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
return START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
c= getApplicationContext();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
class SpeechRecognitionListener implements RecognitionListener {
@Override
public void onReadyForSpeech(Bundle bundle) {
Log.d("onReady", "service");
}
@Override
public void onBeginningOfSpeech() {
}
@Override
public void onRmsChanged(float v) {
}
@Override
public void onBufferReceived(byte[] bytes) {
}
@Override
public void onEndOfSpeech() {
}
@Override
public void onError(int i) {
Log.d("ERROR","ERROR");
}
@Override
public void onResults(Bundle resultsBundle) {
Log.d("Results", "onResults");
}
@Override
public void onPartialResults(Bundle bundle) {
}
@Override
public void onEvent(int i, Bundle bundle) {
}
}
}