SpeechRecognizer.startListening не работает на Chromebook 10, но работает на Pixel 2XL - PullRequest
0 голосов
/ 10 января 2020

У меня есть код распознавания голоса, который вылетает при запуске (после заставки). Мое приложение прекрасно работает без распознавания голоса, но оно требуется для этого приложения.

Этот Acer Chromebook 10 вне моей разработки не имеет проблем с распознаванием голоса (Хорошо, Google, который час .. . et c.) Вот частичный скриншот ошибки, которую я получаю от logcat на Chromebook:

enter image description here

Я добавил разрешения в манифест (до того, как я добавил это, он работал на Pixel 2XL):

<addPermission android:name="android.permission.BIND_VOICE_INTERACTION"/>

... но все равно получаю ту же ошибку. Я не запускаю конкурирующий сервис, а скорее поддерживаю поток работ. Вот фрагмент кода, который, как мне кажется, может выдать эту ошибку (она вылетает сразу после экрана spla sh, поэтому я даже не получаю ответ catch):

  try
  {
    _activity.runOnUiThread(new Runnable()
    {
    public void run()
        {
        // I don't know why, but we have to destroy and redo the recognizer after a failure (unlike onResult), then works great.
        mSpeechRecognizer.destroy(); 
        mSpeechRecognizer.setRecognitionListener(recognitionListener);

        mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");

        mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
        }
    });
  } // end of try
  catch (Exception e)
    {
    Log.debug("Recognition failed with exception " + e.getMessage());
    }

Некоторый фон - Как видно из названия, этот код работает с Pixel 2XL. Это часть внутреннего плагина, который я написал для Unreal Engine для поддержки распознавания голоса. Поэтому я проверяю разрешение "android .permission.BIND_VOICE_INTERACTION" в Blueprints (язык, похожий на блок-схему для UE4) при запуске кода на моем пикселе, и оно возвращается истинным - поэтому я знаю, что это разрешение в порядке с пикселем 2XL. У меня создается впечатление, что может быть конкурирующий сервис, вызывающий конфликт именно на Chromebook (ArcVoiceInteractionService?), И если это так, мне нужно выяснить, как его обойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...