2014-05-13 10 views
8

Ich möchte eine App für das Samsung S-View Cover schreiben. Um herauszufinden, ob die Abdeckung geschlossen ist, möchte ich den Magneten verwenden, der sich in der Abdeckung befindet und nicht den Lichtsensor. Ich versuchte für mein eigenes mit dem tauber Android magnetischen API:S-View Cover-Erkennung [Magnetsensor]

SensorManager manager = (SensorManager) getSystemService(SENSOR_SERVICE); 
Sensor s = manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); 
manager.registerListener(this, s, SensorManager.SENSOR_DELAY_NORMAL); 

tv.setText(event.values[2]); 

aber ich weiß nicht, wie man die Zahlen interpretiert. Natürlich habe ich es auch mit der x-Achse und y-Achse versucht. Sie hängen von der Achse ab, wie ich mein Telefon halte, und es gibt keinen großen Unterschied, wenn ich die Flip-Abdeckung hinter oder vor meinem Telefon habe. Hast du irgendwelche Ideen, wie ich herausfinden kann, ob die Abdeckung mit dem Magnetsensor vor meinem Handy liegt? Muss ich den unkalibrierten Sensor verwenden oder habe ich etwas anderes falsch gemacht?

Antwort

3

Ich glaube, dass diese Eigenschaft von der magnetischen ssersor gemacht wird, verfügbar in Standard-Android-API. Führen Sie auf jeden Fall ein Experiment mit dem Smart Cover durch, um zu sehen, ob Sie diese Daten verwenden können.

+0

Oh okay, es gibt einen magnetischen Sensor in der Standard-Android-API? Ich werde danach suchen und es ausprobieren. Danke – Cilenco

+0

Ich schrieb eine kleine App, die die Werte in eine TextView setzt, aber ich weiß nicht, wie man diese Zahlen interpretiert. Sie hängen von der Achse ab, wie ich mein Handy halte. Hast du eine Idee, wie ich den Sensor implementieren soll? – Cilenco

+1

Natürlich ändern sich die Koordinaten, die Sie erhalten, mit Telefonbewegungen: die Magnetfeldstärke ist ein Vektor und das Koordinatensystem ist mit dem Sensor des Telefons verbunden. –