Xamarin.Essentials: Akcelerometr

Třída akcelerometr vám 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 příručku Začínáme pro, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Použití akcelerometru

Do třídy přidejte odkaz Xamarin.Essentials :

using Xamarin.Essentials;

Funkce akcelerometr funguje tak, že zavolá Start metody a, Stop aby naslouchaly změnám v akceleraci. Jakékoli změny se odešlou zpátky prostřednictvím ReadingChanged události. Zde je ukázka použ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í měřičů akcelerometr se hlásí zpátky v G. A G je Gravitation silou, která se rovná hodnotě, která se používá v poli Gravitational země (9,81 m/s ^ 2).

Souřadnicový systém je definovaný relativně k obrazovce telefonu ve výchozí orientaci. Pokud se změní orientace obrazovky zařízení, osy se nemění.

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

Příklady:

  • Když je zařízení v tabulce ploché a na jeho levé straně se doručí vpravo, hodnota akcelerace 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á akceleraci zařízení (0 m/s ^ 2) minus silou gravitace (-9,81 m/s ^ 2) a normalizována jako v G.

  • Když je zařízení v tabulce ploché a je přesunuté do nebe s akcelerací m/s ^ 2, hodnota zrychlení je rovna + 9.81, která odpovídá akceleraci zařízení (+ m/s ^ 2) minus silou gravitace (-9,81 m/s ^ 2) a normalizovaná v G.

Rychlost senzoru

  • Nejrychlejší – Získejte data senzorů co nejrychleji (nezaručujeme návrat ve VLÁKNĚ uživatelského rozhraní).
  • Hra – sazba vhodná pro hry (nezaručujeme návrat ve VLÁKNĚ uživatelského rozhraní).
  • Výchozí – výchozí sazba je vhodná pro změny orientace obrazovky.
  • Uživatelské rozhraní – sazba vhodná pro obecné uživatelské rozhraní.

Pokud vaše 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 MainThread.BeginInvokeOnMainThread metodu ke spuštění tohoto kódu ve vlákně uživatelského rozhraní.

rozhraní API

Další videa Xamarin najdete na webu Channel 9 a YouTube.