С помощью этого кода:Android: как открыть Speech Input с командой голосом из моего приложения
private void promptSpeechInput() {
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());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
getString(R.string.speech_prompt));
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),
getString(R.string.speech_not_supported),
Toast.LENGTH_SHORT).show();
}
}
С Дифференц способами (событие кнопки, жест, жизненный цикл), я могу назвать этот метод, чтобы открыть Speech Input приглашение так же, как я нажал значок микрофона в поле поиска Google. Хорошо, это хорошо.
Но теперь мне нужно вызвать этот метод, используя голос команды. Так же, как в google сейчас, мы говорим «Ok Google» и появляется приглашение «Вход в речевой ввод». Я хочу сделать это внутри своего приложения. Например, я нахожусь в основном действии, и я говорю «слышу меня» и вызывается метод promptSpeechInput.
Как это сделать?
Спасибо за помощь.
Спасибо @LychmanIT, я тестировал его, и это работает нормально. Не лучший способ для решения, которое я думал, но я могу это сделать: Я могу включить «Ok Google» на всех экранах. Когда пользователь находится в приложении, он может выполнить поиск с помощью google сейчас, и я могу получить эту команду и вызвать метод. Кажется, это не красивое решение, но пользователь может использовать приложение, используя только голосовую команду. –
Я создал тестовый проект, и у меня есть проблема. Поиск работает отлично, используя английский язык, но я из Бразилии, и поиск не работает даже для YouTube. Итак, я попробую по-другому. –
Да, это похоже на @ Simon_Phoenix 's вариант лучше, чем мой. Удачи :) – LychmanIT