Xamarin.Essentials: Jroscope
Cayroscope sınıfı, cihazın üç birincil eksenin etrafında döndürme olan jroscope algılayıcısı 'nı izlemenize olanak sağlar.
başlarken
Bu API 'yi kullanmaya başlamak için, kitaplığın projelerinizde düzgün bir şekilde yüklendiğinden ve ayarlandığından emin olmak için Başlarken Kılavuzunu okuyun.
Jroscope kullanma
Sınıfınıza bir başvuru ekleyin Xamarin.Essentials :
using Xamarin.Essentials;
Jroscope işlevselliği, StartStop jroscope üzerinde yapılan değişiklikleri dinlemek için ve yöntemlerini çağırarak işe yarar. Tüm değişiklikler, ReadingChanged rad/s içindeki olay aracılığıyla geri gönderilir. Örnek kullanım aşağıda verilmiştir:
public class GyroscopeTest
{
// Set speed delay for monitoring changes.
SensorSpeed speed = SensorSpeed.UI;
public GyroscopeTest()
{
// Register for reading changes.
Gyroscope.ReadingChanged += Gyroscope_ReadingChanged;
}
void Gyroscope_ReadingChanged(object sender, GyroscopeChangedEventArgs e)
{
var data = e.Reading;
// Process Angular Velocity X, Y, and Z reported in rad/s
Console.WriteLine($"Reading: X: {data.AngularVelocity.X}, Y: {data.AngularVelocity.Y}, Z: {data.AngularVelocity.Z}");
}
public void ToggleGyroscope()
{
try
{
if (Gyroscope.IsMonitoring)
Gyroscope.Stop();
else
Gyroscope.Start(speed);
}
catch (FeatureNotSupportedException fnsEx)
{
// Feature not supported on device
}
catch (Exception ex)
{
// Other error has occurred.
}
}
}
Algılayıcı hızı
- En hızlı – algılayıcı verilerini mümkün olduğunca hızlı alın (UI iş parçacığında dönüş garantisi yoktur).
- Oyun – Oyunlar için uygun ücret (UI iş parçacığında dönme garantisi yoktur).
- Varsayılan – ekran yönü değişikliklerine uygun varsayılan hız.
- UI – genel kullanıcı arabirimi için uygun ücret.
Olay işleyicinizin UI iş parçacığında çalıştırılması garantisi yoksa ve olay işleyicisinin Kullanıcı Arabirimi öğelerine erişmesi gerekiyorsa, MainThread.BeginInvokeOnMainThread Bu kodu UI iş parçacığında çalıştırmak için yöntemini kullanın.