AndroidでのText-To-Speechの公式紹介では、「アクティビティを作成したら、最初のステップとして、対応する目的でTTSリソースの存在を確認することをお勧めします」と述べています。
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
しかし、このスレッドの@gregmは、そうでないことを示唆しています。
また、ACTION_CHECK_TTS_DATAインテントを使用しないでください。使用するのは面倒です。
代わりに、次のようにします。
- TextToSpeechを作成する
- OnInitで、isLanguageAvailable()をチェックします。そうである場合は、アプリがすべて設定されています。そうでない場合は、ACTION_INSTALL_TTS_DATAを送信します
私が正しく理解していれば、@ gregmが行う/提案するのは、チェックをからに延期することです。TextToSpeech.LANG_MISSING_DATA
onActivityResult()
onInit()
なぜこれが正式なアプローチよりも優れているのですか?
そして、なぜACTION_CHECK_TTS_DATAは「使いにくい」のでしょうか?