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
- Xamarin. Essentials /Accelerometer "data-LINKTYPE =" external ">zdrojový kód akcelerometr
- Dokumentace k rozhraní akcelerometr API