Существует несколько способов реализации одного из самых простых способов сделать это следующим образом.
public void promptspeech(){
Intent i=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
i.putExtra(RecognizerIntent.EXTRA_PROMPT,"Say Something!");
try {
startActivityForResult(i,VOICE_RESULT );
}
catch(ActivityNotFoundException a){
Toast.makeText(this,"Sorry! Your device does not support speech Language", Toast.LENGTH_LONG).show();
}
}
Я установил для языка значение по умолчанию, установленное на мобильных устройствах.
Вы можете получить результат, переопределив метод onActivityResult .
Добавьте следующие строки кода в метод onActivityResult
if(requestCode ==VOICE_RESULT && resultCode==RESULT_OK){
List<String> result=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
editTextRemarks.setText(result.get(0));
}
Настроил код соответствующим образом. Надеюсь, что это поможет выполнить работу.