Xamarin.Essentials: Gyroscope

La classe Gyroscope vous permet de superviser le capteur gyroscopique de l’appareil, qui mesure la rotation autour des trois axes principaux de l’appareil.

Bien démarrer

Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer que la bibliothèque est correctement installée et configurée dans vos projets.

Utilisation du gyroscope

Ajoutez une référence à Xamarin.Essentials dans votre classe :

using Xamarin.Essentials;

La fonctionnalité de gyroscope appelle les méthodes Start et Stop pour écouter les changements relatifs au gyroscope. Tous les changements sont renvoyés via l’événement ReadingChanged en rad/s. Voici un exemple d’utilisation :


public class GyroscopeTest
{
    // Set speed delay for monitoring changes.
    SensorSpeed speed = SensorSpeed.UI;

    public GyroscopeTest()
    {
        // Register for reading changes.
        Gyroscope.ReadingChanged += Gyroscope_ReadingChanged;
    }

    void Gyroscope_ReadingChanged(object sender, GyroscopeChangedEventArgs e)
    {
        var data = e.Reading;
        // Process Angular Velocity X, Y, and Z reported in rad/s
        Console.WriteLine($"Reading: X: {data.AngularVelocity.X}, Y: {data.AngularVelocity.Y}, Z: {data.AngularVelocity.Z}");
    }

    public void ToggleGyroscope()
    {
        try
        {
            if (Gyroscope.IsMonitoring)
              Gyroscope.Stop();
            else
              Gyroscope.Start(speed);
        }
        catch (FeatureNotSupportedException fnsEx)
        {
            // Feature not supported on device
        }
        catch (Exception ex)
        {
            // Other error has occurred.
        }
    }
}

Vitesse de capteur

  • Le plus rapide : obtenir les données de capteur aussi rapidement que possible (aucune garantie de retour sur le thread d’interface utilisateur).
  • Jeu : débit adapté aux jeux (aucune garantie de retour sur le thread d’interface utilisateur).
  • Par défaut : taux par défaut adapté aux changements d’orientation de l’écran.
  • UI : débit adapté à une interface utilisateur général.

Si votre gestionnaire d’événements ne garantit pas l’exécution sur le thread d’interface utilisateur et si le gestionnaire d’événements doit accéder aux éléments de l’interface utilisateur, utilisez la méthode MainThread.BeginInvokeOnMainThread pour exécuter ce code sur le thread d’interface utilisateur.

API