Share via


Xamarin.Essentials: Sallama Algıla

İvme ölçer sınıfı, cihazın üç boyutlu alanda ivmelendiğini gösteren ivmeölçer sensörünü izlemenizi sağlar. Ayrıca, kullanıcı cihazı salladığında olaylara kaydolmanızı 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.

Sallama Algılamayı Kullanma

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

using Xamarin.Essentials;

Cihazın sallanması algılanması için hızlandırmadaki değişiklikleri dinlemek ve sallama algılamak için ve Stop yöntemlerini çağırarak Start İvme Ölçer işlevini kullanmanız gerekir. Sallama algılandığında bir ShakeDetected olay tetiklenir. için kullanılması Game veya daha hızlı kullanılması SensorSpeedönerilir. Örnek kullanım aşağıda verilmiştir:


public class DetectShakeTest
{
    // Set speed delay for monitoring changes.
    SensorSpeed speed = SensorSpeed.Game;

    public DetectShakeTest()
    {
        // Register for reading changes, be sure to unsubscribe when finished
        Accelerometer.ShakeDetected  += Accelerometer_ShakeDetected ;
    }

    void Accelerometer_ShakeDetected (object sender, EventArgs e)
    {
        // Process shake event
    }

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

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 .

Uygulama Ayrıntıları

Sallama algılama API'sinde hızlandırmayı hesaplamak için ivmeölçerden ham okumalar kullanılır. Son ivmeölçer olaylarının 3/4'ünün son yarım saniyede olup olmadığını algılamak için basit bir kuyruk mekanizması kullanır. Hızlandırma, ivmeölçerden X, Y ve Z okumalarının karesi eklenerek ve belirli bir harmanla karşılaştırılarak hesaplanır.

API

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