Exemple de compas Android

Je recherche un exemple de compas pour Android. Tout ce que je dois faire est d'obtenir le bon palier (en mode portrait et paysage).

J'ai déjà trouvé plusieurs échantillons, certains utilisent seulement Sensor.TYPE_ORIENTATION , certains utilisent une combinaison de Sensor.TYPE_ACCELEROMETER & Sensor.TYPE_MAGNETIC_FIELD .

  • Comment obtenir Latitude et Longitude du périphérique mobile dans Android?
  • Navigator.geolocation.getCurrentPosition obtient toujours un délai d'attente dans Android jusqu'à ce que GPS / Emplacement soit désactivé
  • Obtenir l'altitude par longitude et latitude dans Android
  • Android obtient l'emplacement ou l'invite pour activer le service de localisation si désactivé
  • Où suis-je? - Obtenir un pays
  • OnLocationChanged n'est pas appelé automatiquement
  • Quelle est la façon correcte et courante d'obtenir l'incidence, disons Android 1.6 – 4.0?

  • Qu'est ce que android: weightSum dans Android, et comment ça marche?
  • Dans Android, puis-je détecter par programmation que la boussole n'est pas encore calibrée?
  • 3 Solutions collect form web for “Exemple de compas Android”

    Sensor.TYPE_ORIENTATION est obsolète.

    La documentation indique que vous devriez utiliser SensorManager.getOrientation() place.

    Vous devriez donc lire à partir de Sensor.TYPE_ACCELEROMETER ainsi que de Sensor.TYPE_MAGNETIC_FIELD , puis appeler SensorManager.getRotationMatrix() et enfin SensorManager.getOrientation() qui vous SensorManager.getOrientation() l'orientation du téléphone.

    De là, si vous voyez ce diagramme, il est banal d'obtenir l'orientation du téléphone. C'est probablement ce que fait votre deuxième exemple, mais je ne sais pas parce que vous ne m'avez pas montré ce que c'est.

    Merci à Dan pour son exemple de code.

    Mais il y a juste une petite correction : changez event.values à event.values.clone() selon cette discussion .
    Cela fonctionne pour moi maintenant après cette modification.

    En utilisant une combinaison de Sensor.TYPE_ACCELEROMETER et Sensor.TYPE_MAGNETIC_FIELD et SensorManager.getOrientation() ne me donne pas de valeurs précises. La méthode obsolète Sensor.TYPE_ORIENTATION fonctionne bien. 🙂

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.