Xamarin.Essentials: Sallayı Algıla

İvme ölçer sınıfı, cihazın ivme algılayıcısını izlemenizi sağlar ve bu da cihazın üç boyutlu alanda ivmesini gösterir. Ayrıca, kullanıcı cihazı sallarken olaylara kaydolmanız da sağlar.

başlarken

Bu API'yi kullanmaya başlamak için kitaplığın projelerinize düzgün bir şekilde yük olduğundan ve ayar olduğundan emin olmak için başlangıç kılavuzunu okuyun.

Detect Salla kullanma

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

using Xamarin.Essentials;

Cihazın sallanabilir olduğunu algılamak için hızlandırmada yapılan değişiklikleri dinlemek ve sallayanları algılamak için ve yöntemlerini çağırarak İvme ölçer StartStop işlevini kullanabilirsiniz. Sallandığında bir olay ShakeDetected etkin olur. için veya daha hızlı Game kullanılması SensorSpeed önerilir. Örnek kullanım şu şekildedir:


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ı – Algılayıcı verilerini mümkün olan en hızlı şekilde elde etmek (kullanıcı arabirimi iş parçacığında geri dönmesi garanti edilemez).
  • Oyun – Oyunlar için uygun hız (kullanıcı arabirimi iş parçacığında geri dönüşü garanti edilemez).
  • Default: Ekran yönlendirme değişiklikleri için varsayılan hız uygundur.
  • UI – Genel kullanıcı arabirimi için uygun hız.

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

Uygulama Ayrıntıları

Algılama salma API'si hızlandırmayı hesaplamak için ivmeölçerden ham okumalar kullanır. Son yarım saniye içinde son ivmeölçer olaylarının 3/4'lerinin olup olduğunu algılamak için basit bir kuyruk mekanizması kullanır. İvme ölçerden X, Y ve Z okumalarının karesi eklanarak ve belirli bir threashold ile karşılaştırarak hızlandırma hesaplanır.

API

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