2016-03-26 14 views
2

私はアプリケーションでテキスト文字列を読むためのTTSサポートを実装しましたが、うまくいきます。私が達成したいのは、ユーザーがTTSの設定を開くことができ、彼/彼女の希望に応じて変更を加えることができるということです。そのコードを実行するときに私のアプリケーションのテキストとスピーチの設定を表示します

は、ここに私のコード

Intent intent = new Intent(); 
intent.setAction("com.android.settings.TTS_SETTINGS"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
DetailActivity.this.startActivity(intent); 

しかし、私のアプリがクラッシュです。私はアンドロイド4.1.2デバイスを使用しています。

ご意見はありますか?

ありがとうございます。

+1

あなたのlogcatを表示してください –

答えて

2

あなたはTTSの好みに

private void checkTTSAvailability() { 
    Intent checkTtsIntent = new Intent(); 
    checkTtsIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
    startActivityForResult(checkTtsIntent, TTS_DATA_CHECK_CODE); 
} 

をチェックして、onActivityResult(int型requestCode、int型のresultCode、テントデータ)の結果を処理するために

if(requestCode == TTS_DATA_CHECK_CODE){ 
     // Success! File has already been installed 
     if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){ 
      mTts = new TextToSpeech(getActivity(), this); 
     }else{ 
      // fail, attempt to install tts 
      Intent installTts = new Intent(); 
      installTts.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); 
      startActivity(installTts); 
     } 
    } 

か、単純にしたい場合は、この目的のアクションを使用することができます設定を開くには、この操作を使用してください。

Intent intent = new Intent(); 
intent.setAction("com.android.settings.TTS_SETTINGS"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
this.startActivity(intent); 

そのクラッシュについてはおそらくICS(API> = 14)のため、上記のICS以上のソリューションを使用してください。

関連する問題