Вы получаете ноль, потому что TextToSpeech
нужно время для инициализации.Вот почему вы должны обеспечить реализацию OnInitListener
во время инициализации.
tts = new TextToSpeech(context, new TextToSpeech.OnInitListener(){
@Override
public void onInit(int status) {
// Now you can use tts
Set<Locale> loc = tts.getAvailableLanguages();
Object[] objloc = loc.toArray();
};
});
Этот подход требует использования TextToSpeech в качестве переменной класса, поэтому вам потребуется какой-то обратный вызов, чтобы получить результаты из GetLanguages
метод.