Frage

Ich habe derzeit eine sehr einfache App, für die die einzige Interaktion das iPhone schüttelt. Letztendlich dimem und automatische Locks, da das iPhone keine Touch-Events erhält. Ich habe mich gefragt, ob es eine Möglichkeit gibt, das Auto-Lock-Time-Out beim Schütteln zurückzusetzen.

Ich weiß, dass ich das tun würde, um Auto-Lock vollständig zu deaktivieren:

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]

Aber ich möchte es nicht wirklich vollständig deaktivieren. Wenn das iPhone zu Recht nicht verwendet wird, sollte es wie erwartet automatisch lockern.

Danke für Ihre Hilfe.

War es hilfreich?

Lösung

Sie könnten den Wert von umschalten [UIApplication sharedApplication].idleTimerDisabled Basierend auf dem Wert Ihres eigenen NSTIMER- oder Verhaltensgeste (schütteln Sie das Telefon). Es kann auf eingestellt werden YES/NO Mehrfach in Ihrer Anwendung.

Andere Tipps

Hier ist der Code, den ich in meiner App verwende. Ein bisschen Hintergrund: Meine App verfügt über einen integrierten Webserver, damit Benutzer über WLAN von einem Browser von einem Browser auf Daten zugreifen können. Jedes Mal, wenn eine Anforderung auf dem Server eintrifft, erweitere ich den Sperrtimer (in diesem Fall mindestens 2 Minuten. Sie erhalten weiterhin die Standardzeit hinzugefügt.

// disable idle timer for a fixed amount of time.
- (void) extendIdleTimerTimeout
{
    // cancel previous scheduled messages to turn idle timer back on
    [NSObject cancelPreviousPerformRequestsWithTarget:self
        selector:@selector(reenableIdleTimer)
        object:nil];
    // disable idle timer
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

    // re-enable the timer on after specified delay.
    [self performSelector:@selector(reenableIdleTimer) withObject:nil afterDelay: 60 * 2];

}

- (void) reenableIdleTimer
{
sharedApplication].idleTimerDisabled );
    [NSObject cancelPreviousPerformRequestsWithTarget:self
        selector:@selector(reenableIdleTimer)
        object:nil];
    // disable idle timer
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top