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 Intent,这样使用起来很尴尬。
相反,请执行以下操作:
- 创建文本转语音
- OnInit,检查 isLanguageAvailable() 如果是,您的应用程序已全部设置。如果没有,发送 ACTION_INSTALL_TTS_DATA
如果我理解正确,@gregm 所做/建议的是将检查推迟到.TextToSpeech.LANG_MISSING_DATA
onActivityResult()
onInit()
为什么这比正式的方法更好?
为什么 ACTION_CHECK_TTS_DATA 如此“难用”?