Aracılığıyla paylaş


Xamarin.Essentials:Ivme

İvme ölçer sınıfı, cihazın üç boyutlu alanda ivmelendiğini gösteren ivmeölçer sensörünü izlemenizi sağlar.

Kullanmaya başlayın

Bu API'yi kullanmaya başlamak için kitaplığın projelerinizde düzgün yüklendiğinden ve ayarlandığından emin olmak için Xamarin.Essentials kullanmaya başlama kılavuzunu okuyun.

IvmeÖlçer Kullanma

Sınıfınızda için Xamarin.Essentials bir başvuru ekleyin:

using Xamarin.Essentials;

İvme Ölçer işlevi, hızlandırmadaki değişiklikleri dinlemek için ve Stop yöntemlerini çağırarak Start çalışır. Tüm değişiklikler olay üzerinden ReadingChanged geri gönderilir. Ö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.
        }
    }
}

Ivmeölçer okumaları G olarak bildirilir. G, dünyanın çekim alanı (9,81 m/sn^2) tarafından uygulanana eşit bir çekim gücü birimidir.

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

X ekseni yataydır ve sağa doğru, Y ekseni dikeydir ve yukarı doğru ilerler ve Z ekseni ekranın ön yüzünün dışına doğru ilerler. Bu sistemde, ekranın arkasındaki koordinatların negatif Z değerleri vardır.

Örnekler:

  • Cihaz bir tablonun üzerinde düz bir şekilde uzandığında ve sol tarafına sağa doğru itildiğinde, x hızlandırma değeri pozitif olur.

  • Cihaz bir tabloda düz olduğunda, ivme değeri +1,00 G veya (+9,81 m/sn^2) olur. Bu değer, ağırlık kuvveti (-9,81 m/sn^2) çıkarılarak cihazın hızlanmasına (0 m/sn^2) karşılık gelir ve G'de olduğu gibi normalleştirilir.

  • Cihaz bir tabloda düz olduğunda ve A m/s^2 ivmesi ile gökyüzüne doğru itildiğinde, ivme değeri A+9,81'e eşittir ve bu değer, cihazın (+A m/s^2) ağırlık kuvveti (-9,81 m/sn^2) eksisine karşılık gelir ve G'de normalleştirilir.

Algılayıcı Hızı

  • En hızlı – Sensör verilerini mümkün olan en hızlı şekilde alın (UI iş parçacığında döndürüleceği garanti değildir).
  • Oyun – Oyunlara uygun fiyat (kullanıcı arabirimi iş parçacığında döndürülmesi garanti değildir).
  • Varsayılan – Ekran yönlendirme değişiklikleri için uygun varsayılan hız.
  • Ui – Genel kullanıcı arabirimi için uygun oran.

Olay işleyicinizin kullanıcı arabirimi iş parçacığında çalışması garanti değilse ve olay işleyicisinin kullanıcı arabirimi öğelerine erişmesi gerekiyorsa, ui iş parçacığında bu kodu çalıştırmak için yöntemini kullanın MainThread.BeginInvokeOnMainThread .

API

Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.