Local Notifications - geht das?

  • Local Notifications - geht das?

    Hi,

    nachdem ich jetzt lange keine Zeit für die IOS-Entwicklung hatte und viel in anderen Sprachen gemacht hatte will ich mal wieder was mit Objective C machen. Ich will eine Art Wecker bauen. Ich weis, Wecker gibt es wie Sand am Meer im App-Store aber dafür ist die App auch nicht gedacht. Es soll einfach nur für ein Hobby-Projekt genutzt werden.

    Ist ja eigetnlich keine schwere Sache so einen Wecker zu programmieren und in @macmoonshines Buch wird das ja auch gleich in den ersten Kapiteln beschrieben.

    Nur zwei Sachen habe ich noch nie gemacht und weis, wenn ich ehrlich bin, auch nicht so direkt nach was ich googeln soll.

    Folgende Sachen sind mir unklar:
    1. Ich nutze jeden Tag den iOS eingebauten Wecker. Wenn nun morgens der Ton erklingt kann ich diesen ganz einfach ausschalten indem ich mein Finger auf den Touch-ID Sensor lege. Finde ich genial. Snooze geht glaube ich über die Lautstärke Tasten. Wie implementiert man so etwas? Ist das jetzt Standard bei iOS 10 oder darf das nur Apple?
    2. Gibt es eine Möglichkeit zu messen, wie lange der Ton abgespielt wurden ist. Also der Wecke klingelt um 5:30 Uhr und ich schalte den 5:30 und 5 Sekunden aus per Touch ID z.B. Kann ich nun messen, dass der Ton 5 Sekunden lief? Wenn ja wie? Ich habe wie gesagt kein Plan, wo ich mich da am besten belesen könnte.

    Viele Grüße und Danke
    Nils
  • Warum denn einen Timer?

    Du weißt die Uhrzeit wann er klingelt. Das hast du ja selber eingestellt.
    und durch das abstellen weißt du auch die Stopzeit

    timestampStop - timestampStart = Zeit die der Ton an war

    Da musst du nicht mit timern hantieren , nicht mal für den Beginn brauchst du einen timer, das macht die localNotification
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • Danke für die Antworten. So ein vorgehen ging mir schon in Kopf herum. Ich habe auch mich schon öfters mit Notifications beschäftigt aber gibt es eine Delegate-Methode, wann die Notifcation gestoppt wurde? Ich habe da noch nie eine gefunden.

    Ein Timer wäre mir nie in den Sinn gekommen. Mit einen Timestamp wollte ich es schon machen aber ich habe eben noch nie so eine Methode gefunden.
  • matz schrieb:

    AppleDeveloper schrieb:

    wann die Notifcation gestoppt wurde
    Wie gestoppt?
    Naja wenn ich morgens mein Wecker nicht gleich höre klingelt der noch eine Ewigkeit weiter und immer lauter. Manche Tage bin ich aber schon wach und da mache ich ihn innerhalb von 1 Sekunde aus. Also der Ton erklingt nur eine Sekunde weil ich dann die Notification "stoppe" aber auch manchmal 4 Sekunden. Kommt drauf an wie schnell ich den Finger aufs Handy lege.

    Wenn ich jetzt die Zeit haben will muss ich ja wissen wie schnell ich war.
  • Nein ich meinte eine UILocalNotification. Die kann man ja an einen bestimmten Zeitpunkt abfeuern mit definierten Sound.

    Und bei iOS klingelt die ne ganze Weile. Wenn man schnell wach ist und die stoppt hört man das eben nur eine Sekunde. Wenn man erstmal braucht das zu realisieren dann läuft das ganze eben länger und ich möchte wissen wie lange
  • ich glaube du hast von Notification ein falsches Vertändnis

    die Notification ist lediglich der Auslöser

    du sagst der Notification wann die zuschlagen soll
    der Notification sagst du was sie machen soll wenn sie zuschlägt
    hast du noch nie in einer App das NSNotificationCenter benutzt?

    du sagst der Notification welche Methode sie aufrufen soll und die Methode kann dann zB so aussehen

    Quellcode

    1. - (void)onNotification:(NSNotification)notification {
    2. [ [NSUserdefaults bla] setCurrentTime];
    3. [Sound starteSound];
    4. }

    jetzt dudelt dein Sound vor sind hin und wenn du nun wach bist und den StopButton drückst sieht die Methode so aus


    Quellcode

    1. - (void)onButtonTouch:(UIButton)sender {
    2. [ [NSUserdefaults bla] setCurrentTime];
    3. [Sound stopSound];
    4. }
    wie lange der Sound läuft, hat nix mit der Notification zu tun
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • Danke für deine Antwort! So habe ich das bisher ja auch immer genutzt. Finde ich aber für einen Wecker Mega unpraktisch. So einen Wecker würde ich nie benutzen. Da muss ich ja erst mein Handy entsperren App aufrufen und dann den Knopf drücken. Unpraktisch.

    Apple's eigene Wecker App und Sleep Cycle machen es anders. Mein Wecker klingelt aber ich muss nicht mein Handy entsperren und die App starten sondern ich lege im gesperrten Zustand einfach nur meinen Finger auf den Touch ID Sensor und siehe da, der Wecker ist aus.

    Das müssen die ja irgendwie machen. In der App dann ist der Wecker auch deaktiviert. Wenn ich jedoch die Lautstärke Tasten benutze bleibt der Wecker aktiv und klingelt in 5 Minuten noch mal. Also führen die ja auch eine Aktion aus.

    Meine Frage ist, wie oben beschrieben, wie ich 1. Den Ton aus mache wenn ich den Fingee drauf lege bzw. Snooze wenn ich die Lautstärketasten drücke
    2. Welche Methode denn nun aufgerufen wird, wenn ich da den Finger drauf lege. Es muss ja irgendwie gehen.
  • Die habe ich mir gerade durchgelesen aber irgendwie übersehe ich da was. Ich habe ganz viele Beispiele gefunden, wie man sich mit Touch ID Authentifizieren kann aber das ist ja was anderes.

    EDIT: ich glaube das ist die Rätsels Lösung. Neu in diesen neuen Notifications: developer.apple.com/reference/…rwardaction?language=objc

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AppleDeveloper ()