diff options
-rwxr-xr-x | core/java/android/speech/tts/ITts.aidl | 4 | ||||
-rwxr-xr-x | core/java/android/speech/tts/TextToSpeech.java | 39 | ||||
-rwxr-xr-x | packages/TtsService/src/android/tts/TtsService.java | 9 |
3 files changed, 51 insertions, 1 deletions
diff --git a/core/java/android/speech/tts/ITts.aidl b/core/java/android/speech/tts/ITts.aidl index 2ed660a..df8ea0c 100755 --- a/core/java/android/speech/tts/ITts.aidl +++ b/core/java/android/speech/tts/ITts.aidl @@ -61,5 +61,7 @@ interface ITts { int playSilence(in String callingApp, in long duration, in int queueMode, in String[] params); - int setEngineByPackageName(in String enginePackageName);
+ int setEngineByPackageName(in String enginePackageName); + + String getDefaultEngine();
}
diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java index 80b3a74..69b60db 100755 --- a/core/java/android/speech/tts/TextToSpeech.java +++ b/core/java/android/speech/tts/TextToSpeech.java @@ -1340,4 +1340,43 @@ public class TextToSpeech { } } + + /** + * Gets the packagename of the default speech synthesis engine. + * + * @return Packagename of the TTS engine that the user has chosen as their default. + * + * @hide + */ + public String getDefaultEngine() { + synchronized (mStartLock) { + String engineName = ""; + if (!mStarted) { + return engineName; + } + try { + engineName = mITts.getDefaultEngine(); + } catch (RemoteException e) { + // TTS died; restart it. + Log.e("TextToSpeech.java - setEngineByPackageName", "RemoteException"); + e.printStackTrace(); + mStarted = false; + initTts(); + } catch (NullPointerException e) { + // TTS died; restart it. + Log.e("TextToSpeech.java - setEngineByPackageName", "NullPointerException"); + e.printStackTrace(); + mStarted = false; + initTts(); + } catch (IllegalStateException e) { + // TTS died; restart it. + Log.e("TextToSpeech.java - setEngineByPackageName", "IllegalStateException"); + e.printStackTrace(); + mStarted = false; + initTts(); + } finally { + return engineName; + } + } + } } diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java index 0d2921e..ae48e0e 100755 --- a/packages/TtsService/src/android/tts/TtsService.java +++ b/packages/TtsService/src/android/tts/TtsService.java @@ -1436,6 +1436,15 @@ public class TtsService extends Service implements OnCompletionListener { return mSelf.setEngine(packageName);
} + /** + * Returns the packagename of the default speech synthesis engine. + * + * @return Packagename of the TTS engine that the user has chosen as their default. + */ + public String getDefaultEngine() { + return mSelf.getDefaultEngine(); + } + }; } |