From dd5b4e2150c8e9f1511ab1b19890d9170407d9a6 Mon Sep 17 00:00:00 2001 From: Charles Chen Date: Wed, 17 Mar 2010 19:15:41 -0700 Subject: [PATCH] Added a check to TtsService to make sure that the engine is enabled before using it; if the engine is not enabled, TtsService will fall back to using the default system engine. Change-Id: I401f9c19cc1351c0ae6daf2b11069e5036febc51 --- .../TtsService/src/android/tts/TtsService.java | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java index 6b7ab3f511c9..2b9e7e15f71d 100755 --- a/packages/TtsService/src/android/tts/TtsService.java +++ b/packages/TtsService/src/android/tts/TtsService.java @@ -122,7 +122,8 @@ public class TtsService extends Service implements OnCompletionListener { private static final int MAX_FILENAME_LENGTH = 250; // TODO use the TTS stream type when available private static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_MUSIC; - + // TODO use TextToSpeech.DEFAULT_SYNTH once it is unhidden + private static final String DEFAULT_SYNTH = "com.svox.pico"; private static final String ACTION = "android.intent.action.START_TTS_SERVICE"; private static final String CATEGORY = "android.intent.category.TTS"; private static final String PKGNAME = "android.tts"; @@ -210,10 +211,29 @@ public class TtsService extends Service implements OnCompletionListener { if (isDefaultEnforced()) { enginePackageName = getDefaultEngine(); } + + // Make sure that the engine has been allowed by the user + if (!enginePackageName.equals(DEFAULT_SYNTH)) { + String[] enabledEngines = android.provider.Settings.Secure.getString(mResolver, + android.provider.Settings.Secure.TTS_ENABLED_PLUGINS).split(" "); + boolean isEnabled = false; + for (int i=0; i