アプリケーションのメイン アクティビティで、次のようなインテントを発行しACTION_CHECK_TTS_DATA
ます。
Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, 0);
返されると、onActivityResult() で、利用可能な音声を一覧表示しようとします。
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
String availableVoices = intent.getStringExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES);
Log.d("TTS engine installed", "Available voices: " + availableVoices);
new TextToSpeech(this, this);
}
}
}
私は受信してCHECK_VOICE_DATA_PASS
おり、すべて正常に動作していますが、Log.d() メッセージによると、intent.getStringExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES)
null が返されます!
私の電話にはかなりの数の音声があり、インストールされて正常に動作していることを知っていますが、なぜnullをgetStringExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES)
返すのですか?
私は何が欠けていますか?