实时安装TTS语音数据android

Install TTS voice data in real time android

我正在尝试通过 google TTS 语音合成器大声朗读印地语文本,它在我的设备上运行良好,因为我已经手动安装了印地语语音数据,但是在另一台设备上进行测试时,不包含印地语语音,不显示下载特定语音数据的提示。这是部分代码:

  @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if (requestCode == ACT_CHECK_TTS_DATA) {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
            // Data exists, so we instantiate the TTS engine
            textToSpeech = new TextToSpeech(this, this);
        } else {
            // Data is missing, so we start the TTS
            // installation process
            Intent installIntent = new Intent();
            installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installIntent);
        }
    }
}

所以,TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA 似乎不起作用,但是我不知道它到底做了什么,我相信其余的代码都很好。 我的问题有什么解决方案吗?

使用以下方式检查是否安装了可用语言。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);

   if (requestCode == VOICE_DATA_CHECK) {
    ArrayList<String> availableLanguages = 
   data.getStringArrayListExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES);

     if (availableLanguages.isEmpty()) {
      // no language data available, prompt for install
     Intent installIntent = new Intent();
      installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
      startActivity(installIntent);
     } else {
     // some language data is available, create TTS instance
      mTts = new TextToSpeech(this, this);
   }
  }
}