2

私は人間と機械の対話オープン ソース システム JVoiceXML の Java から Android への移植性に取り組んでいます。このシステムは、XML ドキュメントを使用して人間と機械の間の対話を作成する VoiceXML 2.0 標準に基づいています。

このアイデアは、TTS と SpeechRecognizer android エンジンを使用して音声でユーザーと対話するアプリを作成する手段を Android に提供することです。

システムサービスが機能するのと同じように、画面に視覚的な影響を与えずにそうしようとしています。今のところ、システムをサービスとして実装しようとしましたが、スレッドと Android がサービスを強制終了することに問題があります。

問題は、どのアプローチが私のプロジェクト、AsyncTask、サービス、ローダーに最も適していると思いますか? AsyncTask または Loader を開始するサービスでしょうか?

要件は次のとおりです。

  1. 私のVoiceXMLインタープリターはアプリのインテントによって起動されます(インテントフィルターは私が今持っている方法です)
  2. アプリからドキュメントを受信します。また、アプリは Interpreter を停止するか、少なくともそのドキュメントの解釈を停止できます。
  3. インタープリターは TTS と対話し、音声認識エンジンを作成します。
  4. インタープリター自体は、サービス、ローダー、または asyncTask から開始する必要がある Java スレッドです。
  5. インタープリターを利用できるアプリは 1 つだけです (並列接続は必要ありません)。

問題を理解するためにさらに情報が必要な場合はお知らせください。

前もって感謝します、

マルコス。

4

1 に答える 1

1

作業の大部分がすでに別のスレッド内で行われている場合、AsyncTaskは必要ないと思います。サービスのインタプリタを使用するだけです。ユーザーインターフェイスなしで何かを提供したい場合は、何があってもサービスが必要になります。

于 2012-04-30T22:51:00.423 に答える