通話中にSpeechRecognizerを実行する方法はありますか?私はそれをこのように行いました:
BroadcastReceiver
電話の状態の変化を処理します(オフフックなど)。- これ
SpeechRecognizer
は、メインスレッドでのみ開始できるため、現在の(メイン)スレッドで開始されます。アプリケーションコンテキストはレコグナイザーに使用されます(ブロードキャストレシーバーに与えられた現在のコンテキストは使用を開始できません)
しかし、残念ながら、反対側の人は私を聞くことができません(ただし、音声認識は正常に機能します)。離れて、認識機能は私の声を「消費」し、それを送信しません。
呼び出し中にメインスレッドで何かを行うのは危険だと知っていますが、呼び出し中に何らかの方法でレコグナイザーを実行する方法はありますか?
更新:のTelephonyManager
代わりにリスナーを試していBroadcastReceiver
ますが、一部の内部サービスはNPEで動作します。