Бесконечный цикл на Android при попытке создать учетные данные для Watson's Speech To Text.while (! credentials.HasIamTokenData ()) - PullRequest
0 голосов
/ 09 февраля 2019

Я создал простое приложение для проверки речи и текста IBM Watson.Мой план состоит в том, чтобы развернуть приложение Android, используя его.Мое приложение работает во время игры на Unity, но не работает после сборки и запуска на моем Android-устройстве.

Благодаря изучению Logcat на Android Studio я обнаружил, что оно выполняет бесконечный цикл в цикле while, упомянутом взаглавие.Моя учетная часть моего кода также находится ниже.

Опять же, это работает на моем ПК.Не работает после сборки и развертывания на Android.Кто-нибудь знает, что мне не хватает?Я предполагаю, что это что-то конкретное связано с Android, но я не уверен.Я зашел в тупик, гуглил ответы.

private void Start()
 {
     Debug.Log("Start");
     recordedText = GameObject.Find("RecordedText").GetComponent<Text>();
     LogSystem.InstallDefaultReactors();
     // create Watson service
     Runnable.Run(CreateService());
     // note if there are mic devices found
     foreach (string device in Microphone.devices)
     {
         Debug.Log(device);
     }

     audioSource = gameObject.AddComponent<AudioSource>();
 }

 // creates Watson credentials and initializes STT service
 private IEnumerator CreateService()
 {

     if (string.IsNullOrEmpty(_iamApikey))
     {
         throw new WatsonException("Plesae provide IAM ApiKey for the service.");
     }

     //  Create credential and instantiate service
     Credentials credentials = null;

     //  Authenticate using iamApikey
     TokenOptions tokenOptions = new TokenOptions()
     {
         IamApiKey = _iamApikey
     };

     credentials = new Credentials(tokenOptions, _serviceUrl);

     if(credentials != null) Debug.Log("Credentials is not null!");
     //  Wait for tokendata
     while (!credentials.HasIamTokenData())
     {
         Debug.Log("In the while loop"); // INFINITE LOOP ON ANDROID
         yield return null;
     }

     Debug.Log("OUT of the while loop");

     _speechToText = new SpeechToText(credentials); // NEVER REACHES ON ANDROID
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...