Bildschirm vom iOS-Dienst ein / aus erkennen

8

Ich entwickle eine Netzwerkmonitor-App, die im Hintergrund als Dienst ausgeführt wird. Ist es möglich, eine Benachrichtigung / einen Anruf zu erhalten, wenn der Bildschirm ein- oder ausgeschaltet wird?

Es existiert in Android unter Verwendung des folgenden Codes:

%Vor%

screenOnOffReceiver wird dann aufgerufen, wenn der Bildschirm ein- / ausgeschaltet wird. Gibt es eine ähnliche Lösung für iOS?

Bearbeiten: Das Beste, was ich bisher gefunden habe, ist UIApplicationProtectedDataWillBecomeUnavailable ( Erkennen, ob der iPhone-Bildschirm aktiviert ist / aus ), aber der Benutzer muss Data Protection (Passwortschutz) auf dem Gerät aktivieren.

    
Sunkas 07.01.2013, 08:00
quelle

3 Antworten

13

Sie können Darwin-Benachrichtigungen verwenden, um zuzuhören für die Ereignisse. Ich bin mir nicht 100% ig sicher, aber es sieht für mich aus, als würde ich auf einem jailbroken iOS 5.0.1 iPhone 4 laufen, dass eines dieser Ereignisse das ist, was Sie brauchen:

%Vor%

Update: Außerdem wird die folgende Benachrichtigung gesendet, wenn das Telefon gesperrt wird (aber nicht, wenn es entsperrt wird):

%Vor%

Um dies zu verwenden, registrieren Sie sich für das Ereignis wie folgt (das registriert nur ein Ereignis, aber wenn das nicht für Sie funktioniert, versuchen Sie es mit den anderen):

%Vor%

Dabei ist displayStatusChanged Ihr Rückruf für Ereignisse:

%Vor%

Wenn Sie möchten, dass dieser Code im Hintergrund als Dienst ausgeführt wird und Sie jailbroken sind, würde ich empfehlen, iOS Starten Sie Daemons . Im Gegensatz zu einer App , die Sie einfach im Hintergrund laufen lassen, kann ein Launch-Daemon nach einem Neustart automatisch gestartet werden und Sie müssen sich nicht um iOS-Regeln für Anwendungen kümmern, die Aufgaben im Hintergrund ausführen.

Lassen Sie uns wissen, wie das funktioniert!

    
Nate 08.01.2013, 05:33
quelle
1

Unter Verwendung der Benachrichtigungs-API der unteren Ebene können Sie den Lockstatus abfragen, wenn eine Benachrichtigung empfangen wird:

%Vor%

Natürlich muss Ihre App eine UIBackgroundTask starten, um die Benachrichtigungen zu erhalten, was die Nützlichkeit dieser Technik aufgrund der begrenzten Laufzeit von iOS einschränkt.

    
Nick Dowell 30.05.2014 11:33
quelle
-2

Während iPhone-Bildschirm ist appdelegate Methode gesperrt "- (void) applicationWillResignAktiv: (UIApplication *) -Anwendung"  Wird angerufen werden Sie können das überprüfen. Hoffe es kann dir helfen.

    
Exploring 07.01.2013 08:06
quelle