0

私は、受信したメッセージや着信コールなどをバックグラウンドでリッスンし、メッセージの種類に応じてさまざまなアクティビティで表示または出力する必要のあるメッセージングおよびSIPアプリケーションを用意しています。私の質問です:これのSIPの部分を達成するための最良の方法は何ですか? AsyncTask、Service、IntentServiceなど?Android SIPサービスの永続性

私のアプリが起動すると、最初にローディングインジケーターを表示し、ユーザーにローディング状態を表示し、初期状態を確認します(サーバーアプリケーションのチェックインやサウンドレベルの設定など)。 )。

その時点で、私はSIPサーバにSIPクライアントとして登録し、そこに座ってバックグラウンドで着信呼を聞きたいのですが、他のアクティビティはフォアグラウンドで実行されます(時計やWebViewなど)。ウェブページなど)。 SIPコールが来たら、私はそれに答えるためにバックグラウンドSIPクライアントを必要とし、そこにあったかもしれない活動からスクリーンを引き継ぐ。

元々、SipListenerクラスはAsyncTaskで始まりました。 1)メモリリークのリスクを冒したくない、2)SIPサーバに登録した後にSIPクライアントを持続させることができなかったという2つの懸念があります(したがって、着信呼が聴取されていない、答えた)。

次に、SipListenerクラスをServiceに移植しようとしました。しかし、問題は、SIPがネットワークサービスであり、Network-on-Main-Thread例外を取得していたために登録することすらできなかったということでした。

今、このIntentServiceオプションが表示されています。その方法があるかどうか疑問に思っていますか?

私はAndroidを学んでいるので、危険であると知っています。誰かが私を正しい方向に向けることができますか?

答えて

0

リスナーだけでなくサービスでSipを実装し、アクティビティを開始したり、着信コール(メッセージ)を通知することができます。

Linphone for androidをご確認ください。 それを構築しようとすると、それはあなたのための偉大な練習になる、それを使用してカスタマイズします。 また、彼らにはServiceがあります。

幸運。