Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa Accelerometer umożliwia monitorowanie czujnika akcelerometru urządzenia, który wskazuje przyspieszenie urządzenia w przestrzeni trójwymiarowej.
Rozpocznij
Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.
Korzystanie z akcelerometru
Dodaj odwołanie do Xamarin.Essentials klasy:
using Xamarin.Essentials;
Funkcja akcelerometru działa przez wywołanie Start metod i Stop w celu nasłuchiwania zmian przyspieszenia. Wszelkie zmiany są wysyłane z powrotem za pośrednictwem ReadingChanged zdarzenia. Oto przykładowe użycie:
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.
}
}
}
Odczyty akcelerometru są zgłaszane z powrotem w G. G jest jednostką siły grawitacyjnej równej tej wywieranej przez pole grawitacyjne ziemi (9,81 m/s^2).
Układ współrzędnych jest zdefiniowany względem ekranu telefonu w domyślnej orientacji. Osie nie są zamieniane po zmianie orientacji ekranu urządzenia.
Oś X jest pozioma i wskazuje po prawej stronie, oś Y jest pionowa i wskazuje w górę, a oś Z wskazuje na zewnątrz przedniej powierzchni ekranu. W tym systemie współrzędne za ekranem mają ujemne wartości Z.
Przykłady:
Gdy urządzenie znajduje się płasko na tabeli i jest wypychane po lewej stronie w kierunku prawej, wartość x przyspieszenia jest dodatnia.
Gdy urządzenie znajduje się płasko w tabeli, wartość przyspieszenia wynosi +1,00 G lub (+9,81 m/s^2), co odpowiada przyspieszaniu urządzenia (0 m/s^2) minus siłą grawitacji (-9,81 m/s^2) i znormalizowaną jak w G.
Gdy urządzenie znajduje się płasko na tabeli i jest przesuwane w kierunku nieba z przyspieszeniem M/s^2, wartość przyspieszenia jest równa A+9,81, która odpowiada przyspieszaniu urządzenia (+A m/s^2) minus siła grawitacji (-9,81 m/s^2) i znormalizowana w G.
Szybkość czujnika
- Najszybsze — jak najszybciej pobierz dane czujnika (nie ma gwarancji powrotu do wątku interfejsu użytkownika).
- Gra — stawka odpowiednia dla gier (nie ma gwarancji powrotu do wątku interfejsu użytkownika).
- Ustawienie domyślne — częstotliwość domyślna odpowiednia dla zmian orientacji ekranu.
- Interfejs użytkownika — szybkość odpowiednia dla ogólnego interfejsu użytkownika.
Jeśli program obsługi zdarzeń nie ma gwarancji, że zostanie uruchomiony w wątku interfejsu użytkownika, a program obsługi zdarzeń musi uzyskać dostęp do elementów interfejsu użytkownika, użyj MainThread.BeginInvokeOnMainThread metody , aby uruchomić ten kod w wątku interfejsu użytkownika.
interfejs API
Powiązany film wideo
Więcej filmów na platformie Xamarin można znaleźć w witrynach Channel 9 i YouTube.