Porównanie użycia funkcji rozpoznawania mowy w Androidzie: przez Intent lub on-thread?

Wprowadzenie

Android zapewnia dwa sposoby korzystania z funkcji rozpoznawania mowy.

Thepierwszy sposób jest przezIntent, jak w tym pytaniu:Przykład zamierzony. NowyActivity jest wypychany na szczyt stosu, który nasłuchuje użytkownika, słyszy jakąś mowę, próbuje go transkrybować (zwykle przez chmurę), a następnie zwraca wynik do mojej aplikacji, za pośrednictwemonActivityResult połączenie.

Thedruga jest przez uzyskanieSpeechRecognizer, jak kod tutaj:Przykład SpeechRecognizer. Tutaj wygląda na to, że mowa jest nagrywana i zapisywana na innym wątku, a następnie wywołania zwrotne przynoszą mi wyniki. I to się robibez wychodzenia z mojegoActivity.

Chciałbym zrozumiećplusy i minusy tych dwóch sposobów rozpoznawania mowy.

Co mam do tej pory

UżywającIntent:

jest prosty w kodowaniuunika ponownego wymyślania kołazapewnia spójne wrażenia użytkownika z rozpoznawania mowy w urządzeniu

ale

może być powolny przy tworzeniu nowej aktywności z własnym oknem

UżywającSpeechRecognizer:

pozwala mi zachować kontrolę nad interfejsem użytkownika w mojej aplikacjidaje mi dodatkowe możliwości reagowania (dokumentacja)

ale

jest ograniczone do wywoływania z głównego wątkuwiększa kontrola wymaga więcej kontroli błędów.

questionAnswers(3)

yourAnswerToTheQuestion