完成 setOnUtteranceProgressListener 后启动服务?
Start service after setOnUtteranceProgressListener on done?
我有一个问题,我想在 Text to speech 完成讲话后启动 android 服务。
这是我的代码
HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "SOME MESSAGE");
t1.speak(text, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
t1.speak("I can speak anything",TextToSpeech.QUEUE_ADD, null);
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.US);
t1.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onDone(String utteranceId) {
// Log.d("MainActivity", "TTS finished");
//here i want to start my service
startService(new Intent(this, MyService.class));// but its not working
}
@Override
public void onError(String utteranceId) {
}
@Override
public void onStart(String utteranceId) {
}
});;
}
}
请帮帮我....
您可以以标准方式启动服务,但 startService() 需要上下文,如果您在 ProgressListener
中,那将是上下文。
您需要使用
context.startService(new Intent(context, MyService.class));
如果您使用 Activity,您可以使用
MyActivity.this.startService(new Intent(MyActivity.this, MyService.class));
还有很多examples on this question. You can of course create an intent and add extras to it,再这样使用。
我有一个问题,我想在 Text to speech 完成讲话后启动 android 服务。
这是我的代码
HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "SOME MESSAGE");
t1.speak(text, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
t1.speak("I can speak anything",TextToSpeech.QUEUE_ADD, null);
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.US);
t1.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onDone(String utteranceId) {
// Log.d("MainActivity", "TTS finished");
//here i want to start my service
startService(new Intent(this, MyService.class));// but its not working
}
@Override
public void onError(String utteranceId) {
}
@Override
public void onStart(String utteranceId) {
}
});;
}
}
请帮帮我....
您可以以标准方式启动服务,但 startService() 需要上下文,如果您在 ProgressListener
中,那将是上下文。
您需要使用
context.startService(new Intent(context, MyService.class));
如果您使用 Activity,您可以使用
MyActivity.this.startService(new Intent(MyActivity.this, MyService.class));
还有很多examples on this question. You can of course create an intent and add extras to it,再这样使用。