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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top