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. Ponadto umożliwia rejestrowanie zdarzeń, gdy użytkownik potrząsa urządzeniem.
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 funkcji Detect Shake
Dodaj odwołanie do Xamarin.Essentials klasy:
using Xamarin.Essentials;
Aby wykryć wstrząs urządzenia, należy użyć funkcji akcelerometru, wywołując Start metody i Stop w celu nasłuchiwania zmian przyspieszenia i wykrywania wstrząsu. Za każdym razem, gdy zostanie wykryty wstrząs, ShakeDetected zdarzenie zostanie wyzwolone. Zaleca się użycie Game funkcji lub szybszej dla elementu SensorSpeed. Oto przykładowe użycie:
public class DetectShakeTest
{
// Set speed delay for monitoring changes.
SensorSpeed speed = SensorSpeed.Game;
public DetectShakeTest()
{
// Register for reading changes, be sure to unsubscribe when finished
Accelerometer.ShakeDetected += Accelerometer_ShakeDetected ;
}
void Accelerometer_ShakeDetected (object sender, EventArgs e)
{
// Process shake event
}
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.
}
}
}
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.
Szczegóły implementacji
Interfejs API wykrywania wstrząsu używa nieprzetworzonych odczytów z akcelerometru do obliczania przyspieszenia. Używa prostego mechanizmu kolejki do wykrywania, czy 3/4. części ostatnich zdarzeń akcelerometru miały miejsce w ciągu ostatniej połowy sekundy. Przyspieszanie jest obliczane przez dodanie kwadratu odczytów X, Y i Z z akcelerometru i porównania go z określonym threashold.
interfejs API
Powiązany film wideo
Więcej filmów na platformie Xamarin można znaleźć w witrynach Channel 9 i YouTube.