RIassumo i passaggi:
- Creazione del Service foreGround (ricordare di aggiungere startForeground / Bindaggio delle activities con startService in aggiunta al binding.
- Creazione di startTime e stopTime con i riferimenti dei buttons che richiamano queste funzioni dalle altre activities
- Creazione del listener personalizzato di AlarmOn, e di onTaskRemoved per la chiusura del Service.
Detto questo, ora si aggiungono le funzioni più specifiche...
Per CoachCall, bisogna aggiungere la sintesi vocale e la suoneria.
Metto la variabile pubblica:
public TextToSpeech tts;e aggiungo il codice per l'inizializzazione del TextToSpeech nel Service:
@Override
public void onCreate(){
Intent intent=new Intent(this,MainActivity.class);
PendingIntent pi=PendingIntent.getActivity(this, 0, intent, 0);
Notification notification=new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.cornetta)
.setContentTitle("CoachCall")
.setContentText("Telefonate dal Coach")
.setContentIntent(pi).build();
startForeground(1,notification);
tts=new TextToSpeech(this,new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status==TextToSpeech.SUCCESS){
tts.setLanguage(Locale.ITALIAN);
}
}
});
Quindi in Telefono vado al codice del pulsante bttRispondi e scrivo un codice per far pronunciare "qualcosa":
bttRispondi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mService.tts.speak("Ciao, scemo",TextToSpeech.QUEUE_FLUSH,null);
mService.startTime();
finish();
}
});
E finora funziona.Lo scopo successivo è attendere la fine del parlato.
Nessun commento:
Posta un commento