2013-07-22 29 views
7

Ich weiß, das wurde 1 Million mal gefragt, aber es war einfach unmöglich, es für mich herauszufinden.Schrittzähler im Hintergrund

Also muss ich eine Schrittzähler-App bauen und es weiter zählen Schritte Ereignis, wenn sie die App zu de Hintergrund für mehr als 10 Minuten senden.

Der Client möchte GPS überhaupt nicht verwenden, auch kein stilles Audio abspielen, da Apple es möglicherweise ablehnt.

Hat jemand eine Idee und wie man das macht?

Der Klient nimmt Runtastic Pedometer App als Referenz und ich habe es analysiert und es verwendet weder Ort noch Musik und läuft im Hintergrund für mehr als 10 Minuten.

Irgendwelche Hinweise? Ist es wirklich unmöglich, es so zu machen? Könnte es sein, dass Runtastic-Leute mit Apple eine Vereinbarung getroffen haben, eine geheime API zu verwenden, damit sie im Hintergrund läuft?

Antwort

19

ich Runtastic Pedometer sah, und es hat die folgenden in seiner Info.plist Datei:

<key>UIBackgroundModes</key> 
<array> 
    <string>audio</string> 
    <string>external-accessory</string> 
</array> 

Also im Grunde, sie tun, um die Audio-Trick, und sie behaupten, eine Verknüpfung mit einem externen Zubehör.

Ich hasse das Offensichtliche zu sagen, aber Ihre Frage scheint zu sein "Dies sind die Regeln, aber ich will ihnen nicht folgen. Wie komme ich um sie herum?" Die Antwort scheint zu lauten: "Fügen Sie Ihrer App Funktionen hinzu, bis Sie eines der Kriterien erfüllen." Aus der Dokumentation:

In iOS, ist nur bestimmter App-Typ erlaubt im Hintergrund laufen zu lassen:

  • Apps, die hörbaren Inhalte an den Benutzer, während im Hintergrund, wie ein Musik-Player spielen App
  • Apps, die wie eine Navigations-App
  • Apps jederzeit Benutzer informiert ihrer Lage halten, die Voice over Internet Protocol (VoIP)
  • unterstützen
  • Kiosk-Anwendungen, die und zu verarbeiten, neue Inhalte
  • Apps herunterladen müssen, die regelmäßig Updates von externem Zubehör erhält

hinzufügen Eines dieser Features, um Ihre Anwendung. Fügen Sie nach jeder gehenden Meile eine Einstellung hinzu, um ein Glückwunschgeräusch zu spielen. Lassen Sie es standardmäßig deaktiviert. Das sollte Sie für die Audio-Playing-Ausnahme qualifizieren. Haben Sie eine Option zum Erfassen von Standortdaten, um zu markieren, wo der Benutzer war, als er 1.000 Meilen überquerte. Lassen Sie die Funktion standardmäßig deaktiviert. Das sollte sich für die Standortkriterien qualifizieren. Füge eine Funktion hinzu, um inspirierende Haiku aus einem RSS-Feed oder Schlagzeilen von runnersworld.com herunterzuladen. Das könnte Sie auf den Grund des neuen Inhalts bringen. Es ist nicht schwer. Stellen Sie sich einfach ein triviales, zehnzeiliges Code-Feature vor, das Sie in die Tür bringt. Nutze deine Vorstellungskraft.

+0

Vielen Dank, ich werde weiter für das externe Zubehör untersuchen. Ich würde gerne den Standort verwenden, wie Sie vorschlagen, ist nur, dass der Client nicht warum GPS verwenden, nur Gott weiß warum. – Ecarrion

+0

Sie rocken ipmcc. Es hat für mich funktioniert. –

+0

Wenn Sie die Regeln befolgen, werden großartige App-Ideen gequetscht. Danke dafür, jetzt muss ich herausfinden, wie ich das für mich machen kann. –

1

Sie können überprüfen, die Apple docs über Deklaration Ihrer App unterstützt Hintergrundaufgaben. Sie können auch this tutorial über die Verwendung der Hintergrundmodi überprüfen.

+1

Ich weiß, ich habe diese Dokumente wie 10 Mal gelesen und nach ihnen gibt es keinen legalen Weg zu tun, was ich will, was ich verstehe. Aber der Klient ist, wenn er besessen ist, möglich, weil Runtastic Pedometer es tut. – Ecarrion

+0

Ist es möglich, dass Runtastic einen der oben genannten Modi verwendet und Sie nicht erkannt haben? – Peres

+0

Nach Apple, wenn Sie diese Methoden für einen echten Zweck der App nicht verwenden, wird abgelehnt, auch die App fragt nicht nach meinem Standort, spielt keine Musik, weil ich es verwenden kann, während ich meine Musik spiele , fragt nicht bluetooth Zugang, ich bin nicht sicher, wie man weiß, ob sie VOIP tun, aber ich denke nicht, weil das Mikrofon nicht benutzt. Ich habe keine Ideen mehr. – Ecarrion

0

Wenn Sie eine Serverseite haben, können Sie vermeiden, Ihre App selbst im Hintergrund auszuführen, indem Sie einen stillen Push senden und Ihre App nur für die Meldung der Anzahl der Schritte aufwecken.

Sie können sich für stille Push-Vorgänge registrieren, ohne dass der Benutzer Push-Nachrichten erhalten muss, da sie diese nicht sehen.