problème android SensorEventListener
Question
Je suis en train de créer une application qui lit les données de boussole numérique. J'ai essayé de réutiliser le code du livre de développement professionnel Application Android, mais l'IDE affiché une note
Le type SensorListener est dépréciée
Je suppose que c'est parce que le code du livre est écrit pour la version SDK plus tôt j'ai donc essayé d'utiliser SensorEventListener à la place.
Alors quand j'ai essayé d'enregistrer l'auditeur
sensorManager.registerListener(sensorListener, SensorManager.SENSOR_ORIENTATION, SensorManager.SENSOR_DELAY_FASTEST);
une erreur est apparue:
La méthode registerListener (SensorListener, int, int) dans le type SensorManager est pas applicable pour les arguments (SensorEventListener, int, int)
J'ai donc essayé de jeter SensorEventListener à SensorListener, mais l'application ne fonctionne pas.
Quelqu'un sait comment utiliser le capteur dans une version plus récente du SDK?
Merci.
La solution
Il y a un SensorEventListener
classe, vous devez utiliser. Voir .
Autres conseils
Vous avez réellement besoin de passer dans un objet Senor, non seulement l'ID de celui-ci.
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_FASTEST)
La méthode est juste dépréciée, vous devez utiliser
registerListener(SensorEventListener, Sensor, int)
au lieu.
J'ai eu le même problème, mais quand je Casted les 2 premiers paramètres (comme SensorEventListener) et (capteur) cela a fonctionné. Je me suis alors rendu compte que le problème était que, pour une raison que je l'avais déclaré le capteur en tant que type « objet » et non « Sensor », donc Eclipse n'a pas réussi à identifier les types de paramètres.
Cela a fonctionné pour moi:
mSensorManager.registerListener((SensorManager)this, (Sensor)mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
Mais maintenant, je l'ai déclaré correctement mAccelerometer comme capteur de type I plus besoin des moulages.