2012-03-28 23 views
1

Ich entwickle eine iPhone-Anwendung, die über Wi-Fi mit einem Nicht-iOS-Gerät kommuniziert. Meine Anwendung verwendet VOIP. Ich habe die Streams konfiguriert und die erforderlichen UIBackgroundModes in meine plist hinzugefügt.iPhone VOIP im Hintergrund

Das Problem ist, dass die Anwendung keine Informationen vom externen Gerät erhält, wenn es im Hintergrund eintritt.

Kann mir jemand sagen, ob mir etwas fehlt?

+0

Ich denke, Sie müssen ein wenig mehr Details zu dem, was Sie bisher versucht haben, liefern. Vielleicht einen Code schreiben? – onnoweb

+2

IIRC, Netzwerkkommunikation ist deaktiviert, wenn sich Ihre IOS-Anwendungen in den Hintergrund bewegen. – KevinDTimm

+0

Ich erkläre mehr: Meine App kommuniziert mit einem externen Gerät über WIFI. Wenn die App in den Hintergrund wechselt, speichert das Betriebssystem die vom externen Gerät kommenden Daten und liefert die Daten, wenn die Anwendung in den Vordergrund zurückkehrt. Das Problem ist, dass ich zwischen Daten unterscheiden möchte, die im Hintergrund kamen und Daten, die im Vordergrund kamen. Die Frage ist: sollte ich eine Hintergrundaufgabe ausführen, um Daten zu verarbeiten, die kommen, wenn die App im Hintergrund ist, oder sollte ich die Datenverarbeitung im Vordergrund behalten? – rokridi

Antwort

0

Ich gehe davon aus, dass Sie die erforderlichen Hintergrund-Modi in der PLIST basierend auf Ihrer Aussage korrekt einstellen. Das Array ist der Schlüssel und der erforderliche Wert für Audio und voip. Haben Sie auch den Schlüssel "Anwendung läuft nicht im Hintergrund" hinzugefügt, um die PLIST und auf NEIN gesetzt.

+0

Dies ist das erste, was ich getan habe, bevor ich Code eingegeben habe – rokridi

1

Nicht sicher über das tatsächliche Problem.

Stellen Sie sicher, folgende Laut iOS-Hintergrund VOIP-Anwendung wird es nur TCP-Verbindung am Leben & im Hintergrund kommunizieren können.

Also, wenn Sie/Ihren Stack UDP-Socket für VOIP verwenden, dann ersetzen Sie es durch TCP.

Im Falle von UDP-Port bleiben binden mit Ihrer Anwendung, aber es ist inaktiv im Hintergrundmodus & aktiviert im Vordergrundmodus.

+0

Ich errichte eine TCP-Verbindung, um mit dem Server zu kommunizieren (bedenke, dass ich meine Anwendung unter iOS 5 entwickle). Und ich habe gerade eine Hintergrundaufgabe ausgeführt und die Anwendung empfängt weiterhin Daten im Hintergrund, dies dauert jedoch nur maximal 10 Minuten. Ich frage mich, ob ich auf dem richtigen Weg bin. – rokridi

+0

Während dieser Zeit (maximal 10 Minuten) senden Sie ein Paket? Besonderer Zeitunterschied zwischen dem Empfang und dem zuletzt gesendeten Paket? Und auch unterscheiden, dass, was auch immer pkt Sie recv nach dem Vordergrund kommt, ist Fang pkt oder erneut übertragen. Wie per SIP-Standard pkt für 32 Sekunden erneut übertragen, aber für TCP wird es pkt für 2 min übertragen. –

+0

Während dieser Zeit sende und empfange ich Pakete – rokridi

Verwandte Themen