Bagikan melalui


Xamarin.Essentials: Deteksi Goyang

Kelas Akselerometer memungkinkan Anda memantau sensor akselerometer perangkat, yang menunjukkan akselerasi perangkat dalam ruang tiga dimensi. Selain itu, ini memungkinkan Anda untuk mendaftar untuk peristiwa ketika pengguna mengguncang perangkat.

Memulai

Untuk mulai menggunakan API ini, baca panduan memulai untuk Xamarin.Essentials memastikan pustaka diinstal dan disiapkan dengan benar di proyek Anda.

Menggunakan Detect Shake

Tambahkan referensi ke Xamarin.Essentials di kelas Anda:

using Xamarin.Essentials;

Untuk mendeteksi goyangan perangkat, Anda harus menggunakan fungsionalitas Accelerometer dengan memanggil Start metode dan Stop untuk mendengarkan perubahan pada akselerasi dan mendeteksi goyangan. Setiap kali goyangan terdeteksi ShakeDetected , peristiwa akan diaktifkan. Disarankan untuk menggunakan Game atau lebih cepat untuk SensorSpeed. Berikut adalah contoh penggunaan:


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

Kecepatan Sensor

  • Tercepat - Dapatkan data sensor secepat mungkin (tidak dijamin akan kembali pada utas UI).
  • Game – Rate cocok untuk game (tidak dijamin akan kembali pada utas UI).
  • Default – Laju default yang cocok untuk perubahan orientasi layar.
  • UI – Laju yang cocok untuk antarmuka pengguna umum.

Jika penanganan aktivitas Anda tidak dijamin berjalan pada utas UI, dan jika penanganan aktivitas perlu mengakses elemen antarmuka pengguna, gunakan MainThread.BeginInvokeOnMainThread metode untuk menjalankan kode tersebut pada utas UI.

Detail Implementasi

API goyangan deteksi menggunakan pembacaan mentah dari akselerometer untuk menghitung akselerasi. Ini menggunakan mekanisme antrean sederhana untuk mendeteksi apakah 3/4 dari peristiwa akselerometer baru-baru ini terjadi pada paruh kedua terakhir. Akselerasi dihitung dengan menambahkan kuadrat pembacaan X, Y, dan Z dari akselerometer dan membandingkannya dengan ambang tertentu.

API

Temukan video Xamarin lainnya di Channel 9 dan YouTube.