Xamarin.Essentials: İvometer

Hızlandırma sınıfı, cihazın hızlandırma, üç boyutlu alanda cihaz hızlandırmasını gösteren hızlandırma algılayıcı algılayıcısını izlemenize olanak sağlar.

başlarken

Bu API 'yi kullanmaya başlamak için, kitaplığın projelerinizde düzgün bir şekilde yüklendiğinden ve ayarlandığından emin olmak için Başlarken Kılavuzunu okuyun.

Ivometer kullanma

Sınıfınıza bir başvuru ekleyin Xamarin.Essentials :

using Xamarin.Essentials;

Hızlandırmada StartStop yapılan değişiklikleri dinlemek için ve yöntemlerini çağırarak ivme ölçer işlevi işe yarar. Tüm değişiklikler olay aracılığıyla geri gönderilir ReadingChanged . Örnek kullanım aşağıda verilmiştir:


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

    public AccelerometerTest()
    {
        // Register for reading changes, be sure to unsubscribe when finished
        Accelerometer.ReadingChanged += Accelerometer_ReadingChanged;
    }

    void Accelerometer_ReadingChanged(object sender, AccelerometerChangedEventArgs e)
    {
        var data = e.Reading;
        Console.WriteLine($"Reading: X: {data.Acceleration.X}, Y: {data.Acceleration.Y}, Z: {data.Acceleration.Z}");
        // Process Acceleration X, Y, and Z
    }

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

Hızlandırmalar, G 'de geri bildirilir. A G, dünya üzerindeki Grasel alanı (9,81 m/s ^ 2) tarafından kullanılan bir dizi çıkış gücü için eşit olan bir birimdir.

Koordinat sistemi, varsayılan yönlendirmesinde telefonun ekranına göre tanımlanır. Cihazın ekran yönü değiştiğinde eksenler takas edilmez.

X ekseni yatay ve sağına işaret ediyorsa, Y ekseni dikey ve işaret eder ve Z ekseni ekranın ön yüzüne doğru işaret eder. Bu sistemde, ekranın arkasındaki koordinatların eksi Z değerleri vardır.

Örnekler:

  • Cihaz bir tabloda düz olduğunda ve sağ tarafına doğru sol tarafa itildiğinde x hızlandırma değeri pozitif olur.

  • Cihaz bir tabloda düz olduğunda, hızlandırma değeri + 1,00 G veya (+ 9,81 m/s ^ 2) olur. Bu, cihazın hızlandırmaya (0 m/s ^ 2), yerçekimi zorlamasına (-9,81 m/s ^ 2) ve G olarak normalleştirmeye karşılık gelir.

  • Cihaz bir tabloda düz olduğunda ve m/s ^ 2 hızlandırmalı bir karmaya itildiğinde, hızlandırma değeri cihazın hızlandırmaya (+ bir m/s ^ 2) (-9,81 m/s ^ 2) ve G 'de normalleştirmeye karşı bir değer olan + 9.81 değerine eşittir.

Algılayıcı hızı

  • En hızlı – algılayıcı verilerini mümkün olduğunca hızlı alın (UI iş parçacığında dönüş garantisi yoktur).
  • Oyun – Oyunlar için uygun ücret (UI iş parçacığında dönme garantisi yoktur).
  • Varsayılan – ekran yönü değişikliklerine uygun varsayılan hız.
  • UI – genel kullanıcı arabirimi için uygun ücret.

Olay işleyicinizin UI iş parçacığında çalıştırılması garantisi yoksa ve olay işleyicisinin Kullanıcı Arabirimi öğelerine erişmesi gerekiyorsa, MainThread.BeginInvokeOnMainThread Bu kodu UI iş parçacığında çalıştırmak için yöntemini kullanın.

API

Channel 9 ve YouTube'da daha fazla Xamarin videoları bulun.