Xamarin.Essentials:Akcelerometr

Třída Accelerometer umožňuje monitorovat snímač akcelerometru zařízení, který indikuje zrychlení zařízení v trojrozměrném prostoru.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Použití akcelerometru

Přidejte do Xamarin.Essentials předmětu odkaz:

using Xamarin.Essentials;

Funkce akcelerometru funguje voláním Start metod a Stop voláním změn akcelerometru. Všechny změny se posílají zpět prostřednictvím ReadingChanged události. Tady je ukázkové využití:


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

Čtení accelerometru jsou hlášena zpět v G. A G je jednotka gravitační síly, která se rovná té, která se vyvíjí gravitačním polem země (9,81 m/s^2).

Souřadnicový systém je definován vzhledem k obrazovce telefonu ve výchozí orientaci. Osy se při změně orientace obrazovky zařízení neprohodí.

Osa X je vodorovná a odkazuje vpravo, Osa Y je svislá a odkazuje nahoru a osa Z směřuje směrem k vnější části přední plochy obrazovky. V tomto systému mají souřadnice za obrazovkou záporné hodnoty Z.

Příklady:

  • Když zařízení leží ploché na stole a je posunut na levé straně směrem doprava, hodnota zrychlení x je kladná.

  • Když je zařízení v tabulce ploché, hodnota zrychlení je +1,00 G nebo (+9,81 m/s^2), která odpovídá zrychlení zařízení (0 m/s^2) minus síla závažnosti (-9,81 m/s^2) a normalizovaná jako v G.

  • Když zařízení leží ploché na stole a je posunut směrem k obloze se zrychlením A/s^2, je hodnota zrychlení rovna A+9,81, která odpovídá zrychlení zařízení (+A/s^2) minus síla závažnosti (-9,81 m/s^2) a normalizována v G.

Rychlost snímače

  • Nejrychlejší – co nejrychleji získejte data ze snímačů (není zaručeno, že se vrátíte na vlákno uživatelského rozhraní).
  • Hra – Rychlost vhodná pro hry (není zaručeno vrácení na vlákno uživatelského rozhraní).
  • Výchozí – Výchozí rychlost vhodná pro změny orientace obrazovky.
  • UŽIVATELSKÉ rozhraní – Rychlost vhodná pro obecné uživatelské rozhraní.

Pokud obslužná rutina události není zaručena spuštění ve vlákně uživatelského rozhraní a pokud obslužná rutina události potřebuje přístup k prvkům uživatelského rozhraní, použijte metodu MainThread.BeginInvokeOnMainThread ke spuštění kódu ve vlákně uživatelského rozhraní.

rozhraní API

Další videa o Xamarinu najdete na Channel 9 a YouTube.