Я создаю приложение, которое использует Text to Speech, и я хочу, чтобы пользователь имел возможность использовать его в автономном режиме, поэтому я делаю чек, чтобы проверить, установлены ли данные TTS на устройстве, вот код, который делает это:Как проверить, установлены ли на устройстве определенные данные языка для текста в речь (TTS)?
// Check tts data is installed
Intent checkTTSIntent = new Intent();
checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkTTSIntent, 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){
tts = new TextToSpeech(this, this);
}
else{
Intent installTTSIntent = new Intent();
installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installTTSIntent);
}
}
}
Но это предлагает пользователю установить немецкий, испанский, французский и итальянский в качестве опции четыре загрузки, как я могу просто просто проверить, что один язык установлен, таких как итальянский?
Я провел некоторое исследование, но я изо всех сил пытаюсь найти примеры кода, которые позволили бы мне достичь этого.
Я пытаюсь это, но не могу заставить его работать, ничего не происходит, я буду стараться! Спасибо!!! – deucalion0
Я точно знаю, что для английского языка, когда «eng-USA» нет подсказки. Но если вы удалите лишний экземпляр для EXTRA_CHECK_VOICE_DATA_FOR, он предложит установить немецкий, испанский, французский и итальянский языки. Может быть, абрр для итальянца - это «ита»? –
Привет, я попробовал - IT и ita-ITA, но даже если итальянец установлен, он по-прежнему предлагает загрузить, похоже, он близок к решению! :) Спасибо! – deucalion0