Страницы

Поиск по вопросам

среда, 5 декабря 2018 г.

Есть компонент EditText. Можно ли по какому-нибудь жесту перевести клавиатуру в ввод голосом

Есть компонент EditText. Хочется по какому-нибудь жесту перевести клавиатуру в ввод голосом. Возможно ли такое?


Ответ

Вам нужно обработать ваш жест и вызвать внешний интент:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
теоретически его может и не быть в системе, так что сначала надо проверить его наличие
PackageManager pm = getPackageManager(); List activities = pm.queryIntentActivities( new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); if (activities.size() == 0) //нет распознавателя //blah-blah
Если есть вызвать Activity распознавателя через startActivityForResult(intent, SPEECH_REQUEST) и в onActivityResult() полученные данные положить в EditText
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SPEECH_REQUEST && resultCode == RESULT_OK) { //массив распознанных строк ArrayList matches = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); //ложим в EditText
} super.onActivityResult(requestCode, resultCode, data); }
Update
Собственно ответ на сам вопрос:
перевести клавиатуру в ввод голосом. Возможно ли такое?
Увы это невозможно. Нет такого INPUT_TYPE, каждая реализация клавиатуры реализует сама поддержку ввода голосом.

Комментариев нет:

Отправить комментарий