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