は、私にはよくテキスト読み上げ(LogCatに応じて〜800ms)をインスタンス化した後、TextToSpeech.getLanguage()を呼び出して、まだそれ時々(常にではない)、リターンヌル、システムのテキスト読み上げ設定で正しく設定されている言語にもかかわらず:なぜTextToSpeech.getLanguage()*が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のバグですか? または何か間違っていますか?私はインスタンス化
は、ところで、と私のアプリの主な活動でテキスト読み上げ:
new TextToSpeech(this, this);
とインスタンスとTextToSpeech.getLanguage()への呼び出しの両方が同じスレッド(したがって、呼び出しの順序が保証されている)で作られています。
コールバック後、TTSサービスの初期化が完了したことを示します。 – alanv
@alanvあなたは絶対に正しいです、onInit()でフラグをtrueに設定し、getLanguage()を呼び出す前にこのフラグがtrueであるかどうかを確認する必要があります –
@alanv私は実際にonInit()で2回呼び出します。 nullを返します。 2回目はEN_USAを返すが、明らかにeng_GBRが設定されていることが示されているにもかかわらず。繰り返しますが、*時には、1回目と2回目の呼び出しでeng_GBRが正しく返されます。競合状態のように見える? **なぜこうなった?おそらくこれを説明できるのでしょうか? –