2013-04-03 8 views
6

Ich habe eine Frage zum Ausführen einer App im Hintergrund. Ich weiß, wie es geht, aber Apple mag es nicht, wie ich es mache.iOS Hintergrundmodus

Um Sie auf der gleichen Seite zu bekommen, habe ich eine Sicherheits-App, und ich muss es überwachen das Gerät, auch wenn es im Hintergrund ist. Es ist eine Art Einbruchalarm. Ich habe den Hintergrund-Audiomodus verwendet und dachte, es wäre okay, weil ich einen Ton abspielen werde, wenn er ausgelöst wird. Unnötig zu sagen, dass Apple das nicht mochte. Also habe ich einen Ping hinzugefügt! Es pingt im aktiven Zustand und spielt Hintergrundsound im Hintergrund ab. Das haben sie auch wieder nicht gemocht.

Meine App überwacht auch den Beschleunigungsmesser (aber nicht immer, nur wenn vom Benutzer gewählt).

Meine Frage ist, wie können Apps wie Skype und andere ähnliche Anwendungen die Statusleiste rot und bleiben im Hintergrund? (Auch einige Alarm-Apps werden dies tun, ohne Audio oder irgendetwas zu spielen).

Auch ich kann das Benachrichtigungssystem nicht verwenden, weil es nicht schnell genug aktualisiert, wenn ich den Batterieladestand überwachen. Für meine App brauche ich sofortige Antwort.

ich auch habe gesucht um unermüdlich für diese Antwort, bevor ich meine Frage gestellt (die Antworten, die ich gefunden habe, nicht bei mir nicht funktioniert ..) :(

ich sehr nicht nur die Einsicht auf das schätzen würde, Danke vorrücken!

(Wenn Sie mehr Informationen benötigen, wenden Sie sich bitte!)

+0

Wie haben Sie dieses Problem gelöst? –

+0

Sorry für die sehr späte Antwort, aber wir haben nur mit Apple gestritten, bis sie nachgegeben haben. Wir mussten jedoch das Ping-Geräusch halten, aber wir erlaubten dem Benutzer, Einstellungen vorzunehmen und sie zum Schweigen zu bringen, wenn sie wollten. > :) – JoeyMaru

Antwort

5

von dem, was ich aus ihrer Dokumentation sagen kann, es scheint, dass der einzige Weg, eine persistente Hintergrund Verbindung mit einem ihrer sieben Verwendung ist aufrechterhalten kann background mode keys, die ich sehe, dass Sie versucht haben, seit Sie sich für Hintergrundaudio registriert haben. Ich kenne auch einige Alarm-Apps, die diese Funktion verwenden (z. B. Schlafzyklus), und ich gehe davon aus, dass sie auch den Hintergrund-Audiomodus verwenden, wenn man bedenkt, dass die anderen sechs Modi nicht annähernd so weit sind, wie sie benötigen.

Ich denke, Apples Argumentation könnte sein, dass diese Apps dies tun dürfen, weil ihre App so konzipiert ist, dass sie benutzt wird, wenn der Benutzer das Telefon nicht aktiv benutzt (dh wenn sie schlafen) und Audio benötigt wecken Sie den Benutzer auf. Wenn Sie jedoch eine Sicherheitsanwendung ausführen, die jederzeit aktiv sein soll, können andere Funktionen, die der Benutzer möglicherweise verwendet, wie Skype, beeinträchtigt werden. Die rote Leiste bleibt auch immer oben auf dem Gerät, wenn der Benutzer sie benutzt, was sie fälschlicherweise für etwas, das noch spielt, halten. Normalerweise, wenn ein roter Balken erscheint, bedeutet das für den Benutzer, dass er sie noch aktiv benutzt etwas. Auch hier denke ich, dass Weckalarm-Apps und andere wie diese, die kein persistentes Audio verwenden, damit durchkommen, da sie für den Einsatz bei inaktivem Telefon entwickelt wurden, also die permanente rote Leiste, wenn die App nicht ist sichtbar ist weniger ein Problem. In einigen anderen Fällen, wie Nike + (diskutiert here) und wahrscheinlich Schrittzähler, scheinen sie den Standort Hintergrund-Modus zu verwenden, da sie oft auch verfolgen, wo Sie gingen und Abstand wissen müssen. In dieser Diskussion, mit der ich verlinkt habe, sieht es so aus, als könnten andere Beschleunigungsmesser-Updates erhalten, indem sie sich für einen Hintergrundmodus registrieren, der auf sie zutrifft. Haben Sie versucht, sich für Standortänderungen zu registrieren? Ein Nachteil, den ich sehen kann, ist, dass es die Batterielebensdauer beschleunigen könnte, aber wenn Sie den Standort selten überprüfen, ist es vielleicht nicht so schlimm. Eine andere ist, dass ich nicht glaube, dass Sie Audio direkt im Hintergrundmodus abspielen können, aber Sie könnten versuchen, eine akustische Benachrichtigung auszulösen? :) Das könnte ein guter Workaround dafür sein, wenn das für deine App funktioniert.

Noch einmal, die Begründung, warum diese Apps in der Lage sind zu tun ist nur darauf basiert, wie ich andere Apps laufen gesehen habe, und Apple kann verschiedene Gründe haben, warum sie akzeptiert, aber das war mein bester Weg zu denken, warum deine App abgelehnt wurde, um diese Modi zu verwenden, während die anderen es tun können. Wenn der Standort nicht das ist, wonach Sie suchen, bin ich mir leider nicht sicher, wie es sich anhört, als würde Ihre App es tun, dass Sie es kontinuierlich im Hintergrund in der Art und Weise, wie Sie es erwarten, betreiben können.

+0

Hallo! Danke für Ihre Antwort! Das einzige Problem bei der Verwendung von Ortungsdiensten besteht darin, dass der Benutzer höchstwahrscheinlich nicht bewegt wird, wenn er diese App verwendet, er funktioniert wie ein Kioskalarm. Wenn das Gerät nicht angeschlossen oder bewegt wird (wenn der Benutzer das Gerät nicht berühren möchte), ertönt es. Ich denke, das bisschen Information, wo Sie besprochen haben, warum einige Apps damit durchkommen können, ist unsere Antwort, es scheint einer von denen zu sein: "Sie müssen Apple überzeugen, warum Sie diesen Modus brauchen". Danke für Ihre Zeit! Ich schätze es! – JoeyMaru

+0

Kein Problem! Es ist bedauerlich, aber ich denke, es ist nur eine dieser Situationen, in denen sie sehen müssen, warum es so funktioniert. Ich würde denken, dass in diesem Fall die Registrierung für Hintergrund-Audio sinnvoll ist, da es auf die Eingabeaufforderung eines Benutzers wartet. Ich bin mir nicht sicher, ob die Sleep-Cycle-Devs einfach zu erreichen sind, aber Sie können immer versuchen, sie zu fragen, was funktioniert, da Ihre Implementierung sehr ähnlich ist! (Bearbeiten: Der Standort kann auch zu deinen Gunsten funktionieren, wenn du den Sound zum funktionieren bringst, weil du willst, dass er perfekt stationär bleibt, also würdest du nach Bewegungen jeglicher Art Ausschau halten) –

+1

Gute Idee! Ich dachte, da wir den Standort nicht benutzen, würden sie ihn ablehnen, aber wenn wir sie nicht überzeugen können, ist es immer einen Versuch wert! – JoeyMaru

0

Sie können Hintergrundmodi nur verwenden, wenn Sie aktiv die Aktivität verwenden, die die App wach hält: z. kontinuierlich Abspielen von Audio ist eine gültige Verwendung der Audio-Hintergrundtaste. Sie werden ziemlich genau hinsehen, ob Sie wirklich den Zugriff benötigen, den Sie anfordern, und wenn nicht, werden sie Sie ablehnen (wie Sie bereits herausgefunden haben), da Hintergrunddienste die Batterie erheblich mehr als andere verbrauchen.

Von the docs:

Diese Schlüssel sollten sparsam und nur von Anwendungen verwendet werden, die die angegebenen Leistungen.

Kurzgeschichte: Ich denke, Sie haben Pech mit Ihrer vorgeschlagenen Implementierung.

+0

Ja, ich denke, wir müssten Apple überzeugen, warum wir es so benutzen, wie wir es sind (was wir schon vorher versucht haben, aber ich schätze, wir werden es noch einmal versuchen ...) lol. Danke für Ihre Zeit! – JoeyMaru