Попробуйте запустить ваш код следующим образом: -
List<ResolveInfo> activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0) {
speakButton.setOnClickListener(this);
} else {
speakButton.setEnabled(false);
speakButton.setText("Recognizer not present");
}
Над кодом должен быть написан внутри onCreate (), а ниже должно быть написано за
public void onClick(View v) {
if (v.getId() == R.id.btn_speak) {
startVoiceRecognitionActivity();
}
}
private void startVoiceRecognitionActivity() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
//Run a loop checking whether the list is empty or not:-
while(activities.isEmpty()){
//wait
}
//Now run your alert dialog box
}
Я протестировал его на DellXCD35 android 2.3.3, и он отлично работает, как только вы получаете список текстов в своем списке, просматриваете его, который хотите выбрать.