0

Ich habe eine Messaging- und SIP-App, die eingehende Nachrichten, eingehende Anrufe usw. im Hintergrund abhören und dann in verschiedenen Aktivitäten anzeigen oder ausgeben muss (abhängig vom Nachrichtentyp). Meine Frage ist: Was ist der beste Weg, um den SIP-Teil davon zu erreichen? AsyncTask, Service, IntentService, usw.?Android SIP-Dienst Persistenz

Also, wenn meine App startet, starte ich zunächst eine Startaktivität, die eine Ladeanzeige anzeigt, dem Benutzer den Ladezustand anzeigt, sich um einige Dinge kümmert (wie das Einchecken mit unserer Serveranwendung, Einstellen der Lautstärke usw.) .).

An diesem Punkt möchte ich mich dann als SIP-Client bei meinem SIP-Server registrieren, dort sitzen und auf eingehende Anrufe im Hintergrund lauschen, während andere Aktivitäten im Vordergrund laufen (wie eine Uhr oder ein WebView mit eine Webseite usw.). Wenn ein SIP-Anruf eingeht, brauche ich den Hintergrund-SIP-Client, um ihn zu beantworten und den Bildschirm von jeder möglichen Aktivität zu übernehmen.

Ursprünglich begann ich mit einem AsyncTask für meine SipListener Klasse; Aber ich habe zwei Bedenken: 1) Ich möchte keine Speicherlecks riskieren, und 2) Ich konnte den SIP-Client nach erfolgreicher Registrierung beim SIP-Server nicht erhalten (so wurden keine eingehenden Anrufe abgefangen, geschweige denn antwortete).

Als nächstes habe ich versucht, meine SipListener Klasse in eine Service portieren. Aber das Problem war, dass ich nicht einmal registrieren konnte, weil SIP ein Netzwerkdienst ist und ich Netzwerk-on-Main-Thread-Ausnahmen erhielt.

Jetzt sehe ich diese IntentService Option, und frage mich, ob das der Weg ist zu gehen?

Ich lerne Android, also weiß ich gerade genug, um gefährlich zu sein, wie sie sagen! Kann mir jemand in die richtige Richtung zeigen?

Antwort

0

Sie können Sip im Dienst implementieren, nicht nur Listener, und eine Aktivität starten oder eine Benachrichtigung bei eingehenden Anrufen (Nachrichten) senden.

Wenn Sie sich selbst herausfordern möchten, überprüfen Sie Linphone for android. Versuchen Sie, es zu bauen, es wird eine gute Übung für Sie sein, verwenden Sie es und passen Sie es an. Sie haben auch eine Service, die Ihnen helfen kann.

Viel Glück.