Блокировка Google Assistant во время гарнитуры Bluetooth инициировала сеанс распознавания голоса? - PullRequest
0 голосов
/ 18 мая 2018

Я работаю над приложением для распознавания голоса, которое подключается к нестандартному оборудованию с помощью подключения профиля Bluetooth-гарнитуры (профиль HFP или профиль гарнитуры). Приложение используется для передачи аудиоданных PCM на облачный сервер распознавания голоса, используя класс Android AudioRecord. Эта функция работает нормально, если приложение инициирует соединение SCO, но если аппаратное обеспечение гарнитуры инициирует соединение SCO, выполнив команду AT + BVRA HFP на телефон, Google Assistant всегда захватывает телефон. Таким образом, мой вопрос, как я могу остановить это? Есть ли способ программно сказать Google Assistant для охлаждения? Я пробовал много разных вещей (управление AudioManager sco, предпочтительное соединение AudioRouting, класс профиля BluetoothHeadset, Java Reflection & View.setAssitBlocked (true) и т. Д. ...), но ни одна из них, похоже, не может ни заблокировать Google Assistant, ни восстановить Связь ШОС. (Также кажется, что телефон открывает A2DP для аудио-канала помощника Google). Я надеюсь, что это возможно с решением на основе Java ...?

1 Ответ

0 голосов
/ 23 августа 2018

Как отмечено в другом ответе , вероятно, что Android транслирует ACTION_VOICE_COMMAND намерение , а поскольку Google Assistant настроен на его получение, он получает приоритет надподключение.Ваше приложение может зарегистрироваться для определения цели и узнать, получает ли оно приоритет при его получении.

...