2015-07-07 5 views
6

Nach einigem googlen kann ich verstehen, dass der "Näherungssensor", der auf on/off-Bildschirm verwendet wird, wenn das Gerät in der Nähe vom Benutzer ist. Ich sah this video (Uhr von 30 Sek.) Und über diese coolen Sachen überrascht. Ich möchte es in meiner App implementieren.Wie wird der Näherungssensor programmatisch mit der iOS-Entwicklung verwendet?

Aber ich komme zu wissen, dass es keine öffentliche API gibt, die die Bildschirmsperre schützen kann, wenn proximityMonitoringEnabledYES ist. Wie kann die obige App das tun?

Zum besseren Verständnis kopiere ich etwas Code.

den Näherungssensor aktivieren:

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; 

Setup-Beobachter für Sensorwechsel:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sensorStateMonitor:) name:@"UIDeviceProximityStateDidChangeNotification" object:nil]; 

Schließlich können Sie den Zustand des Näherungssensors von dieser Methode finden:

- (void)sensorStateMonitor:(NSNotificationCenter *)notification 
{ 
    if ([[UIDevice currentDevice] proximityState] == YES) 
    { 
     NSLog(@"Device is close to user."); 
    } 

    else 
    { 
     NSLog(@"Device is not closer to user."); 
    } 
} 

Frage:

Ich mag einige Ansicht zeigen, wenn das „Gerät zum Benutzer der Nähe ist“ Zustand genannt wurde. Und möchte die Ansicht entfernen, wenn der Status "Gerät ist nicht näher am Benutzer" aufgerufen wurde.

Also habe ich eine Ansicht hinzugefügt und innerhalb der sensorStateMonitor: Methode entfernt. Aber die Ansicht war nur für einen Bruchteil von Sekunden sichtbar und der Bildschirm ging aus.

Kann ich verhindern, dass der Bildschirm automatisch ausgeschaltet wird?

Nur verwirrt !!

+0

Hallo @Confused, wie kann ich die Maske Auto verhindern, ist es weg eine Lösung? Wenn ja, können Sie mir dabei helfen. –

Antwort

1

Die Bildschirmsperre kann aktiviert/deaktiviert werden.

[UIApplication sharedApplication].idleTimerDisabled = YES;

+0

Auch diesen Code neben NSLog (@ "Gerät ist in der Nähe des Benutzers."); funktioniert nicht. Immer noch wird der Bildschirm automatisch gesperrt. – Confused

+0

Es scheint, dass es einen Fehler damit geben könnte. Versuchen Sie es in 'applicationDidFinishLaunching' oder nach' [[UIDevice currentDevice] setProximityMonitoringEnabled: YES]; 'zuerst auf NO und dann auf YES. Überprüfen Sie diesen Link: http://iosskill.blogspot.ro/2013/08/disable-sleep-mode-programmatically.html – Templar

+0

Ich habe es vor meinem vorherigen Kommentar selbst versucht. Das hilft auch nicht :( – Confused

Verwandte Themen