Wie erkennt man die Anwesenheit von Benutzern in Android?

8

Ich weiß, in Galaxy Samsung SIII ist es möglich, in den Einstellungen eine Option zu konfigurieren, um zu vermeiden, dass sich der Bildschirm ausschaltet, wenn der Benutzer in den Bildschirm schaut. Ich denke, das Telefon verwendet die Kamera oder eine Art Präsenzsensor.

  1. ist es möglich, es programmatisch zu tun?
  2. selbst wenn ja, einige Geräte sind dazu nicht in der Lage. Ich stelle mir hier einige Möglichkeiten vor: Verwendung der Kamera, Beschleunigungssensor oder sogar Benutzeraktivität: Wenn der Bildschirm eingeschaltet ist, berührt, weiß ich nicht. Es gibt eine spezielle Bibliothek über "Benutzerpräsenz" für Android? Verwenden Sie den besten aller Sensoren, wenn verfügbar?
Felipe 19.12.2012, 15:33
quelle

2 Antworten

6

Ja, da ist so etwas.

Sie können SensorManager verwenden, um Sensorereignisse zu erhalten. Zum Beispiel wird Light Sensor für Sie nützlich sein:

%Vor%

Aber natürlich kann er nicht den ganzen Job alleine machen. Programmieren Sie Ihren Lichtsensor, um zu sehen, wann der Bildschirm heller wird. Wenn dies der Fall ist, sollte bedeuten, dass der Benutzer nicht mehr darauf schaut. Und Sie können den Beschleunigungssensor (wie Sie sagten) verwenden, um Ihnen zu helfen. Ich habe Code gefunden und angepasst, die Klasse sollte in etwa so aussehen:

%Vor%

Deklarieren Sie diese Funktion auch in Ihrer Manifest.xml:

%Vor%

Was Sie "Anwesenheitssensor" genannt haben, könnte der Licht- / Näherungssensor sein. Sie können den Näherungssensor jedoch nicht verwenden, da er normalerweise nur 5 cm Reichweite hat.

    
Sergio Carneiro 19.12.2012, 15:45
quelle
0

Sie können die Frontkamera des Geräts verwenden, um das Gesicht des Benutzers zu erkennen und somit die Anwesenheit des Benutzers zu überprüfen. Die gute Sache ist, dass dies auf jedem Android-Handy mit der Frontkamera funktionieren kann.

Hier ist die Bibliothek von GitHub, die zeigt, wie Sie dies mithilfe der Vission-APIs von Google Play Services erreichen können.

    
Keval Patel 09.12.2016 16:10
quelle