デバイスの起動時にサービスを実行しています。いくつかのデータをチェックし、通知を送信します。私は以下に出くわしました。
http://mobile.tutsplus.com/tutorials/android/android-sdk-using-the-text-to-speech-engine/
音声通知を送信したい。UI部分は必要ありません。プロジェクトに追加するにはどうすればよいですか?
- 別の Java クラス (サービスから Activity を呼び出す)
- 内部クラス
デバイスの起動時にサービスを実行しています。いくつかのデータをチェックし、通知を送信します。私は以下に出くわしました。
http://mobile.tutsplus.com/tutorials/android/android-sdk-using-the-text-to-speech-engine/
音声通知を送信したい。UI部分は必要ありません。プロジェクトに追加するにはどうすればよいですか?
クラスApp
とその中に のインスタンスを作成しますTextToSpeech
。
public class App extends Application {
private static TextToSpeech mTts;
public static TextToSpeech getmTts() {
return mTts;
}
public void onCreate() {
super.onCreate();
// creating TTS:
mTts = new TextToSpeech(this, this);
mTts.setLanguage(Locale.US);
mTts.stop();
}
}
マニフェストで (上記) を宣言App
します。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="your.application.package.App" >
たとえば、次のよう broadcast
にしたい場合は、サービスで送信します。BroadcastReceiver
public class TTSReceiver extends BroadcastReceiver implements OnInitListener {
private TextToSpeech mTts;
private String message;
@Override
public void onReceive(Context context, Intent intent) {
mTts = App.getmTts();
mTts.setLanguage(Locale.US);
message = "your message";
mTts.stop();
mTts.speak(message, TextToSpeech.QUEUE_FLUSH, null);
}
public void onInit(int status) {
}
}
public class SpeakService extends Service implements OnInitListener {
public static TextToSpeech tts;
private String string;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
tts = new TextToSpeech(this, this);
super.onCreate();
}
@Override
public void onDestroy() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
string = intent.getStringExtra("string");
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.UK);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.d("SpeakService", "Language is not available.");
} else {
if (!TextUtils.isEmpty(string)) {
speak(string);
} else {
speak("Error");
}
}
} else {
Log.d("SpeakService", "Could not initialize TextToSpeech.");
}
}
private void speak(String string) {
tts.speak(string, TextToSpeech.QUEUE_FLUSH, null);
}