Gibt es eine Möglichkeit zu überprüfen, ob das iOS-Gerät gesperrt/entsperrt?
Habe ich verwendet GPS-Standort-updates in meiner Anwendung. Ich möchte erkennen, wenn das iOS-Gerät ist im sleep Modus, so kann ich deaktivieren Sie die GPS-Position aktualisiert und die Optimierung der Akku-Nutzung. Ich habe bereits versucht pausesLocationupdates in iOS 6, aber es funktioniert nicht wie gewünscht.
Ich möchte abschalten die GPS-Position aktualisiert, sobald das Gerät geht in den sleep-Modus.
Ich will erkennen, die lock/unlock-Ereignis in das Gerät.
Gibt es eine Möglichkeit, diese Funktionalität zu erreichen ?
bisher hab ich die darwin-Meldungen wie unten angegeben
-(void)registerForall
{
//Screen lock notifications
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
NULL, //observer
displayStatusChanged, //callback
CFSTR("com.apple.iokit.hid.displayStatus"), //event name
NULL, //object
CFNotificationSuspensionBehaviorDeliverImmediately);
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
NULL, //observer
displayStatusChanged, //callback
CFSTR("com.apple.springboard.lockstate"), //event name
NULL, //object
CFNotificationSuspensionBehaviorDeliverImmediately);
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
NULL, //observer
displayStatusChanged, //callback
CFSTR("com.apple.springboard.hasBlankedScreen"), //event name
NULL, //object
CFNotificationSuspensionBehaviorDeliverImmediately);
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
NULL, //observer
displayStatusChanged, //callback
CFSTR("com.apple.springboard.lockcomplete"), //event name
NULL, //object
CFNotificationSuspensionBehaviorDeliverImmediately);
}
//call back
static void displayStatusChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
NSLog(@"IN Display status changed");
NSLog(@"Darwin notification NAME = %@",name);
}
Ich bin in der Lage zu Holen Sie sich die darwin-Benachrichtigungen, wenn das Gerät gesperrt/entsperrt, aber das eigentliche problem ist, wie identifizieren zwischen, wenn die Meldung gekommen ist, zu sperren oder entsperren des Geräts. Konsole-Protokolle sind:
LockDetectDemo[2086] <Warning>: IN Display status changed
LockDetectDemo[2086] <Warning>: Darwin notification NAME = com.apple.springboard.lockcomplete
LockDetectDemo[2086] <Warning>: IN Display status changed
LockDetectDemo[2086] <Warning>: Darwin notification NAME = com.apple.springboard.lockstate
LockDetectDemo[2086] <Warning>: IN Display status changed
LockDetectDemo[2086] <Warning>: Darwin notification NAME = com.apple.springboard.hasBlankedScreen
LockDetectDemo[2086] <Warning>: IN Display status changed
LockDetectDemo[2086] <Warning>: Darwin notification NAME = com.apple.iokit.hid.displayStatus
Alle privaten API würde auch ausreichen.
Vielen Dank im Voraus.
UIApplication.shared.isProtectedDataAvailable
wird wieder true
wenn das Gerät entsperrt istInformationsquelleAutor Rohit Kashyap | 2013-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich löste es so:
Hinweis: die " com.apple.Sprungbrett.lockcomplete " - Benachrichtigung kommt immer nach der "com.apple.Sprungbrett.lockstate" Benachrichtigung
Update
Den um der beiden Meldungen können nicht mehr herangezogen werden, als von den letzten Versionen von iOS
Seine unnötige Diskussion jetzt, die updates sind jeweils der Anwendungsfall, Meine app nutzt die Lage-updates auch im hintergrund und ich habe einen handler, wenn der Benutzer sperrt das Gerät (app im hintergrund), möchte ich anhalten, die location updates.
Von Eskimo@apple hier: devforums.apple.com/message/912689#912689: Diese Mitteilung Tasten sind nicht dokumentiert und daher als eigenes API. Auch von einer Kompatibilität Sicht, sich auf Sie ist nicht eine erhebliche Verbesserung gegenüber der zuvor beschriebenen Techniken. btw Die Meldung Schlüssel als public-API sind aufgelistet in <notify_keys.h> mit diesem VORBEHALT, dass nicht alle diese sinnvoll auf iOS.
Gibt es eine Möglichkeit zu unterscheiden, die Anzeige des status von änderungen zwischen, wenn Sie die power-Taste drücken und wenn das Gerät bekommt eine Benachrichtigung?
Ich kann nicht erkennen, das Ereignis, wenn app ist im hintergrund?
InformationsquelleAutor Rohit Kashyap
Apps sind nicht erlaubt zu hören, Gerät lock-Benachrichtigungen jetzt!.
Hatte ich erhalten:
InformationsquelleAutor Jules
/* Register app für die Erkennung von lock-Zustand */
nur import #import Benachrichtigen.h vor der Verwendung dieser code sonst noch geben Kompilierungsfehler
Was ist zu tun, wenn ich arbeiten will, es im hintergrund auch?
Vandit - ich sehe, Sie haben die Frage gepostet über hintergrund-Erkennung, um mehrere Fragen. Haben Sie jemals finden eine Lösung, die im hintergrund für die Erkennung von gesperrten Zustand?
InformationsquelleAutor Nits007ak
Hier ist eine bessere Lösung
Was ist zu tun, wenn ich arbeiten will, es im hintergrund auch?
InformationsquelleAutor arturgrigor
Für Ihren Anwendungsfall überprüfen Sie die Bildschirm-Helligkeit kann sinnvoll sein.
InformationsquelleAutor rockdaswift
Jimmy eine tolle Lösung, aber es ist sicherer: im
(__bridge const void *)(self)
als Beobachter.Dies ermöglicht es Ihnen, um richtig entfernen Sie den Betrachter.
InformationsquelleAutor Karim Mourra