2010-11-20 5 views
0

J'ai eu une sorte de problème étrange avec mon HTC désir.Problèmes de capteur Android lors du débranchement USB

Je teste actuellement certaines choses à l'aide de l'accéléromètre et des capteurs géomagnétiques.

il semble que les deux retournent parfois (assez peu) exactement les mêmes valeurs.

i got sur mon onSensorChanged()

if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
     gravity = event.values; 
    } 
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { 
     geomagnetic = event.values; 
    } 

et je ne sais pas pourquoi, mais quand je débranche le câble USB (à l'ordinateur), il est gettin pire, (i utiliser thoses valeurs pour faire pivoter une caméra autour un objet comme la carte du ciel, et quand je le débranche, on dirait que les valeurs sont correctes environ 1 fois par 2 secondes ~).

et parfois (avec usb branché et en regardant le logcat) il fonctionne très bien et ne jamais obtenir les mêmes valeurs de deux capteurs.

ce n'est pas mon appareil, un autre programme comme la carte du ciel fonctionne bien, mais je ne comprends pas ce que je fais mal. Je n'ai jamais confondu les deux tableaux gravité et géomagnétique, ils sont juste globaux et utilisés avec SensorManager.getRotationMatrix (R, gravité, géomagnétique). Je me demande si je n'obtiens pas des valeurs trop rapidement, mais même si je définis SENSOR_DELAY_UI dans l'écouteur, c'est la même histoire.

Répondre

1

sigh je suis ....

gravité = événement.valeurs; pointez-y. Une boucle simple comme:

for (int i=0 ; i<3 ; i++) { 
      gravity[i] = event.values[i]; 
} 

et il est ok (pourquoi j'ai toujours trouvé les solutions après avoir posé quelque part ...)

Questions connexes