Xamarin.Essentials:陀螺

陀螺儀類別可讓您監視裝置的陀螺儀感應器,該感應器是裝置三個主軸周圍的旋轉。

開始使用

若要開始使用此 API,請閱讀 入門指南Xamarin.Essentials,以確保連結庫已正確安裝並設定在您的專案中。

使用陀螺儀

在類別中新增 的 Xamarin.Essentials 參考:

using Xamarin.Essentials;

陀螺儀功能的運作方式是呼叫 StartStop 方法,以觀察陀螺儀的變化。 所有變更都會透過 ReadingChanged 事件以每秒弧度為單位傳回。 以下是範例使用方式:


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.
        }
    }
}

感應器速度

  • 最快 – 以最快的方式取得感應器資料 (不保證在 UI 執行緒上傳回)。
  • 遊戲 – 適合遊戲的費率 (不保證在 UI 執行緒上傳回)。
  • 預設值 – 適合螢幕方向變更的預設速率。
  • UI – 適合一般使用者介面的費率。

若您的事件處理常式不保證在 UI 執行緒上執行,且若事件處理常式需要存取使用者介面元素,請使用 MainThread.BeginInvokeOnMainThread 方法在 UI 執行緒上執行程式碼。

API