Я пытаюсь включить кнопку микрофона, чтобы пользователь мог щелкнуть ее, и она может предложить голосовой ввод от пользователя.Затем голосовой ввод будет преобразован в строку и показан в TextView в моем приложении для Android.На данный момент голосовой ввод может быть запрошен, но преобразованная строка не будет отображаться в моем TextView, и нет сбоев или logcat.Просто это не будет показано в моем TextView.Все это происходит в классе, который расширяет фрагмент.
Ниже приведен код кнопки моего микрофона: -
//Button to activate voice recognition
microphonebutton = (ImageButton) view.findViewById(R.id.button_microphone);
microphonebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(intent, 10);
} else {
Toast.makeText(getActivity().getApplicationContext(), "Your device does not support speech input !",Toast.LENGTH_SHORT).show();
}
}
});
Метод onActivityResult: -
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case 10:
if (resultCode == Activity.RESULT_OK && data != null) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
texttotranslate.setText("");
texttotranslate.setText(result.get(0), TextView.BufferType.EDITABLE);
}
break;
}
}
Я получил эти коды из учебника на YouTube, и онказалось, работает хорошо для человека, который представлял учебник.