私のアプリでは、 TextToSpeech をインスタンス化した後にTextToSpeech.getLanguage()を呼び出します ( LogCat によると ~800ms)が、システムの TextToSpeech 設定で言語が適切に設定されているにもかかわらず、時々 (常にではありません) null が返されます。
System Settings > Language & input >
Text-to-speech output > Google Text-to-speech > English (United Kingdom)
これは Jelly Bean (Android 4.1.1 ) でのみ発生します。Android 2.2 では発生しません。
これは既知の Android バグですか? それとも私は何か間違ったことをしていますか?
ところで、アプリのメイン アクティビティで TextToSpeech を次のようにインスタンス化します。
new TextToSpeech(this, this);
また、インスタンス化と TextToSpeech.getLanguage()への呼び出しの両方が同じスレッドで行われます (したがって、呼び出しの順序が保証されます)。