androidで一定時間後にTTSで何かをしゃべらせる
手順はこうです
- ActivityからAlarmManagerでreceiverをセットする
- 指定時間後にreceiverからserviceを呼び出す
- serviceのなかからTTSを呼び出す
順を追って説明します。その前にManifestで以下のように追記します
this is used in newsgetter and for explain code
application内にreciverとserviceを使うことと、パーミッションにSET_ALARMを追加します。指定のしかたは書いてあるような感じです。
次にActivity内でのAlarmManagerのセットのしかたです。これはすでにネットにたくさんありますね。ざっくりいきます。
こんな関数をActivity内から呼び出すことでアラームをセットします。10秒後にRTC_WAKEUPでよびだすAlarmManagerです。
次にAlarmManagerで使われているレシーバです。
16行目のcontext.startServiceが重要です。TTSクラスを入れて呼び出します。ここで直接TTSを呼び出そうとすると事故ります。それでserviceがこちらです。