2012-07-05 7 views
6

Ich versuche, eine im Hintergrund befindliche Weckerfunktion zu einer App hinzuzufügen, die ich gerade entwickle.iPhone-Alarm mit wiederholten lokalen Benachrichtigungen

Ich habe auf dem UILocalNotification Objekt und seine Verwendung gelesen, und bin mir bewusst, dass es auf 30 Sekunden Audio begrenzt ist.

Ich dachte daran, mehrere Benachrichtigungen (sagen wir 5 davon) im Abstand von 30 Sekunden zu planen, um fortlaufendes Abspielen nachzuahmen, aber das Problem bei diesem Ansatz ist, dass der Benutzer Close nicht anwählen kann der nachfolgenden Benachrichtigungen.

Soweit ich weiß, ist es unmöglich, die Close Schaltfläche zu entfernen oder zu verbergen, ohne die Benachrichtigung vollständig zu verbergen (d. H. Die Eigenschaft alertBody auf Nil zu setzen).

Also dachte ich, ich könnte die repeatInterval Eigenschaft verwenden, um die Benachrichtigung alle 30 Sekunden erscheinen zu lassen, aber es scheint, dass ich das Intervall nur auf eine Minute oder eine Sekunde und nichts dazwischen einstellen kann.

Diese Funktion ermöglicht es dem Benutzer, zwischen Musik und Signaltönen für Alarmton zu wählen; es scheint, dass ich einen Weg gefunden habe, die Pieptöne zu machen - setze den repeatInterval auf eine Sekunde, erzeuge einen Piepton der zweiten Sekunde (der zeitlich sauber wiederholt werden müsste) und benutze ihn als Benachrichtigungston.

Für die Musik beschränkt dieser Ansatz mich jedoch auf 30 Sekunden Audio, gefolgt von einer 30-Sekunden-Lücke, gefolgt von 30 Sekunden Audio und so weiter.

Ich weiß, dass es keine einfache Lösung hier gibt, von meinem Lesen anderer Beiträge und Ressourcen; Keine Drittanbieter-App hat Zugriff auf die gleiche Funktionalität wie der eingebaute Wecker. Ich hoffe, dass jemand einen Workaround gefunden hat oder an etwas wirklich Cleveres denkt.

UPDATE: Ich habe festgestellt, dass die repeatInterval mir in diesem Fall nicht hilft, da ich die Wiederholungen nicht abbrechen kann, ohne die App zu starten.

Vorläufig habe ich mich entschieden, eine Benachrichtigung per se nicht als Alarm zu verwenden, sondern habe die Funktion als Erinnerung geändert (mehr im Sinne der Benachrichtigung).

Wenn ich eine Möglichkeit finde, benutzerfreundliche und zuverlässige Alarmfunktionen in einer App zu implementieren, werde ich diesen Beitrag aktualisieren.

+1

"mehrere Benachrichtigungen (z. B. 5 davon) im Abstand von 30 Sekunden, um fortlaufendes Spiel nachzuahmen" - es funktioniert nur so nicht, da LocalNotification-Genauigkeit auf eine Minute begrenzt ... –

+1

Verwenden Sie Hintergrundausführung in Ihrer App . Soweit ich weiß, können Apps Musik im Hintergrund abspielen. –

+0

Hier ist ein Beispiel dafür, wie jemand den lokalen Benachrichtigungs-Hintergrundalarm erstellt hat: http://stackoverflow.com/a/4197215/1264925 – sigre

Antwort

0

Ich fürchte, Sie können dies nicht erreichen .. Grund sein, wie Sie die Schaltfläche "Schließen" angegeben. Sie erhalten keinen Rückruf in der App, wenn die Schaltfläche Schließen angetippt wird. Auch wenn Sie alle 30 Sekunden Benachrichtigungen senden, werden auf dem Bildschirm mehrere Benachrichtigungen angezeigt, die der Benutzer anzeigen oder schließen muss. Die Benutzererfahrung wird also beschissen sein. Ich würde empfehlen, den Nutzern klarzumachen, dass sie keinen Alarm mit einem benutzerdefinierten Ton von mehr als 30 Sekunden einstellen können.

+0

Ich kam zu demselben Schluss, danke für Ihren Vorschlag. – bschnur

Verwandte Themen