Sensor

Ikon HAL Sensor Android

Sensor Android memberi aplikasi akses ke sensor fisik yang mendasari perangkat seluler. Perangkat virtual penyedia data ini ditentukan oleh sensors.h, Hardware Abstraction Layer (HAL) sensor.

Apa yang dimaksud dengan sensor Android?

Sensor Android adalah perangkat virtual yang menyediakan data yang berasal dari serangkaian sensor fisik: akselerometer, giroskop, magnetometer, barometer, kelembapan, tekanan, cahaya, kedekatan, dan sensor detak jantung.

Kamera, sensor sidik jari, mikrofon, dan layar sentuh tidak disertakan dalam daftar perangkat fisik yang menyediakan data. Perangkat ini memiliki mekanisme pelaporan sendiri; pemisahan ini bersifat arbitrer, tetapi secara umum, sensor Android memberikan data bandwidth yang lebih rendah. Misalnya, “100 Hz x 3 saluran” untuk akselerometer versus “25 Hz x 8 MP x 3 saluran” untuk kamera atau “44 kHz x 1 saluran” untuk mikrofon.

Android tidak menentukan cara menghubungkan berbagai sensor fisik ke system on chip (SoC).

  • Sering kali, chip sensor terhubung ke SoC melalui hub sensor, sehingga memungkinkan pemantauan dan pemrosesan data berdaya rendah.
  • Biasanya, Inter-Integrated Circuit (I2C) atau Serial Peripheral Interface (SPI) digunakan sebagai mekanisme transportasi.
  • Untuk mengurangi konsumsi daya, beberapa arsitektur bersifat hierarkis, dengan beberapa pemrosesan minimal dilakukan di sirkuit terintegrasi khusus aplikasi (ASIC - seperti deteksi gerakan pada chip akselerometer), dan lebih banyak dilakukan di mikrokontroler (seperti deteksi langkah di hub sensor).
  • Produsen perangkatlah yang memilih arsitektur berdasarkan karakteristik akurasi, daya, harga, dan ukuran paket. Lihat Stack sensor untuk mengetahui informasi selengkapnya.
  • Kemampuan pengelompokan adalah pertimbangan penting untuk pengoptimalan daya. Lihat Batching untuk mengetahui informasi selengkapnya.

Setiap sensor Android memiliki “jenis” yang merepresentasikan perilaku sensor dan data yang diberikannya.

  • Jenis sensor Android resmi ditentukan dalam sensors.h dengan nama SENSOR_TYPE_…
    • Sebagian besar sensor memiliki jenis sensor resmi.
    • Jenis tersebut didokumentasikan dalam Android SDK.
    • Perilaku sensor dengan jenis tersebut diuji di Android Compatibility Test Suite (CTS).
  • Jika produsen mengintegrasikan jenis sensor baru di perangkat Android, produsen dapat menentukan jenis sementaranya sendiri untuk merujuknya.
    • Jenis tersebut tidak terdokumentasi, sehingga developer aplikasi kemungkinan tidak akan menggunakannya, baik karena tidak mengetahuinya, atau mengetahui bahwa jenis tersebut jarang ada (hanya di beberapa perangkat dari produsen tertentu ini).
    • Fitur ini tidak diuji oleh CTS.
    • Setelah Android menentukan jenis sensor resmi untuk jenis sensor ini, produsen harus berhenti menggunakan jenis sementara mereka sendiri dan menggunakan jenis resmi. Dengan begitu, sensor akan digunakan oleh lebih banyak developer aplikasi.
  • Daftar semua sensor yang ada di perangkat dilaporkan oleh implementasi HAL.
    • Dapat ada beberapa sensor dengan jenis yang sama. Misalnya, dua sensor jarak atau dua akselerometer.
    • Sebagian besar aplikasi hanya meminta satu sensor dari jenis tertentu. Misalnya, aplikasi yang meminta akselerometer default akan mendapatkan akselerometer pertama dalam daftar.
    • Sensor sering kali ditentukan oleh pasangan aktif dan non-aktif, dengan kedua sensor memiliki jenis yang sama, tetapi berbeda berdasarkan karakteristik aktifnya.

Sensor Android memberikan data sebagai serangkaian peristiwa sensor.

Setiap event berisi:

Interpretasi data yang dilaporkan bergantung pada jenis sensor. Lihat definisi jenis sensor untuk mengetahui detail tentang data yang dilaporkan untuk setiap jenis sensor.

Dokumentasi yang ada

Ditujukan untuk developer

Ditargetkan untuk produsen