2011-02-25 54 views
0

我的應用程序會檢測用戶是否安裝了TTS引擎,如果沒有,我會禁用所有功能並給他們一個按鈕,他們可以點擊「安裝TTS」(最好讓他們選擇而不是去掉?自動)如何在用戶離開後將用戶拉回到我的活動中?

按鈕做到這一點:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.languageselection); 

    Intent checkIntent = new Intent(); 
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE); 

} 

protected void onActivityResult(
     int requestCode, int resultCode, Intent data) { 
    if (requestCode == MY_DATA_CHECK_CODE) { 
     if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) { 
      // success, create the TTS instance 
      mTts = new TextToSpeech(this, this); 


      speakEnglishButton.setEnabled(true); 
      speakFrenchButton.setEnabled(true); 
      speakSpanishButton.setEnabled(true); 
      speakGermanButton.setEnabled(true); 
      speakItalianButton.setEnabled(true); 

     } else { 
      speakEnglishButton.setEnabled(false); 
      speakFrenchButton.setEnabled(false); 
      speakSpanishButton.setEnabled(false); 
      speakGermanButton.setEnabled(false); 
      speakItalianButton.setEnabled(false); 

      Toast.makeText(this, "No TTS installed....", Toast.LENGTH_LONG); 
      setContentView(R.layout.nottsengine); 


     } 
    } 
} 

問題:調用startActivity(installIntent);後,我怎麼能勾它們放回我的活動?如果他們已經安裝了TTS引擎,那麼我想要啓用該功能。如果他們確實進入了該活動,但沒有安裝TTS,我需要禁用功能。

回答

0

註冊BroadcastReciver以在安裝TTS包時收到通知。將此添加到您的清單中:

<receiver android:name=".InstallNotifier"> 
    <intent-filter> 
    <action android:name="android.speech.tts.engine.TTS_DATA_INSTALLED" /> 
    </intent-filter> 
</receiver> 
相關問題