Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Sensor
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Sensor Android memberi aplikasi akses ke sensor fisik
yang mendasari perangkat seluler. Ini adalah perangkat virtual penyedia data yang 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 sekumpulan
sensor fisik: akselerometer, giroskop, magnetometer, barometer, kelembapan,
tekanan, cahaya, kedekatan, dan sensor detak jantung.
Yang tidak disertakan dalam daftar perangkat fisik yang memberikan data adalah kamera,
sensor sidik jari, mikrofon, dan layar sentuh. Perangkat ini memiliki
mekanisme pelaporan sendiri; pemisahan 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 berbagai sensor fisik terhubung
ke sistem di chip (SoC).
- Sering kali, chip sensor terhubung ke SoC melalui hub sensor, yang memungkinkan
pemantauan dan pemrosesan data dengan daya rendah.
- Sering kali, Inter-Integrated Circuit (I2C) atau Serial Peripheral Interface
(SPI) digunakan sebagai mekanisme transpor.
- 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 perangkat dapat 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 Pengelompokan untuk mengetahui informasi selengkapnya.
Setiap sensor Android memiliki “jenis” yang mewakili perilaku sensor dan
data yang disediakannya.
- Jenis
sensor Android resmi ditentukan di sensors.h dengan nama SENSOR_TYPE_…
- Sebagian besar sensor memiliki jenis sensor resmi.
- Jenis tersebut didokumentasikan di 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 merujuk
ke sensor tersebut.
- Jenis tersebut tidak didokumentasikan, sehingga developer aplikasi
tidak mungkin menggunakannya, baik karena mereka tidak mengetahuinya, atau
mengetahui bahwa jenis tersebut jarang ada (hanya di beberapa perangkat dari
produsen tertentu ini).
- Aplikasi tersebut 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 cara ini, sensor akan digunakan oleh lebih banyak
developer aplikasi.
- Daftar semua sensor yang ada di perangkat dilaporkan oleh implementasi
HAL.
- Dapat ada beberapa sensor dari jenis yang sama. Misalnya, dua
sensor kedekatan 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 wake-up dan
non-wake-up, kedua sensor memiliki jenis yang sama, tetapi berbeda dengan karakteristik
wake-up-nya.
Sensor Android memberikan data sebagai serangkaian peristiwa sensor.
Setiap peristiwa
berisi:
Penafsiran 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
Ditargetkan untuk developer
- Ringkasan
- Referensi SDK
- Stack Overflow dan situs tutorial
- Karena dokumentasi sensor terkadang kurang, developer
menggunakan situs Tanya Jawab seperti Stack Overflow untuk menemukan jawaban.
- Beberapa situs tutorial juga ada, tetapi tidak membahas fitur terbaru
seperti pengelompokan, gerakan signifikan, dan vektor rotasi game.
- Jawaban di sana tidak selalu benar, dan menunjukkan tempat dokumentasi
lainnya diperlukan.
Ditargetkan untuk produsen
- Ringkasan
- Halaman Sensor
ini dan sub-halamannya.
- Hardware abstraction layer (HAL)
- CDD (Dokumen Definisi Kompatibilitas) Android
- /compatibility/android-cdd.pdf
- Lihat bagian yang terkait dengan sensor.
- CDD bersifat longgar, sehingga memenuhi persyaratan CDD saja tidak cukup untuk memastikan
sensor berkualitas tinggi.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Sensors\n\nAndroid sensors give applications access to a mobile device's underlying\nphysical sensors. They are data-providing virtual devices defined by [sensors.h](https://android.googlesource.com/platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h), the sensor Hardware Abstraction Layer (HAL).\n\nWhat are Android sensors?\n-------------------------\n\nAndroid sensors are virtual devices that provide data coming from a set of\nphysical sensors: accelerometers, gyroscopes, magnetometers, barometer, humidity,\npressure, light, proximity and heart rate sensors.\n\nNot included in the list of physical devices providing data are camera,\nfingerprint sensor, microphone, and touch screen. These devices have their own\nreporting mechanism; the separation is arbitrary, but in general, Android sensors\nprovide lower bandwidth data. For example, \"100hz x 3 channels\" for an\naccelerometer versus \"25hz x 8 MP x 3 channels\" for a camera or \"44kHz x 1\nchannel\" for a microphone.\n\nAndroid does not define how the different physical sensors are connected\nto the system on chip (SoC).\n\n- Often, sensor chips are connected to the SoC through a [sensor hub](/docs/core/interaction/sensors/sensor-stack#sensor_hub), allowing some low-power monitoring and processing of the data.\n- Often, Inter-Integrated Circuit (I2C) or Serial Peripheral Interface (SPI) is used as the transport mechanism.\n- To reduce power consumption, some architectures are hierarchical, with some minimal processing being done in the application-specific integrated circuit (ASIC - like motion detection on the accelerometer chip), and more is done in a microcontroller (like step detection in a sensor hub).\n- It is up to the device manufacturer to choose an architecture based on accuracy, power, price and package-size characteristics. See [Sensor stack](/docs/core/interaction/sensors/sensor-stack) for more information.\n- Batching capabilities are an important consideration for power optimization. See [Batching](/docs/core/interaction/sensors/batching) for more information.\n\nEach Android sensor has a \"type\" representing how the sensor behaves and\nwhat data it provides.\n\n- The official Android [Sensor\n types](/docs/core/interaction/sensors/sensor-types) are defined in [sensors.h](https://android.googlesource.com/platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h) under the names SENSOR_TYPE_...\n - The vast majority of sensors have an official sensor type.\n - Those types are documented in the Android SDK.\n - Behavior of sensors with those types are tested in the Android Compatibility Test Suite (CTS).\n- If a manufacturer integrates a new kind of sensor on an Android device, the manufacturer can define its own temporary type to refer to it.\n - Those types are undocumented, so application developers are unlikely to use them, either because they don't know about them, or know that they are rarely present (only on some devices from this specific manufacturer).\n - They are not tested by CTS.\n - Once Android defines an official sensor type for this kind of sensor, manufacturers must stop using their own temporary type and use the official type instead. This way, the sensor will be used by more application developers.\n- The list of all sensors present on the device is reported by the HAL implementation.\n - There can be several sensors of the same type. For example, two proximity sensors or two accelerometers.\n - The vast majority of applications request only a single sensor of a given type. For example, an application requesting the default accelerometer will get the first accelerometer in the list.\n - Sensors are often defined by [wake-up](/docs/core/interaction/sensors/suspend-mode#wake-up_sensors) and [non-wake-up](/docs/core/interaction/sensors/suspend-mode#non-wake-up_sensors) pairs, both sensors sharing the same type, but differing by their wake-up characteristic.\n\nAndroid sensors provide data as a series of sensor events.\n\nEach [event](/docs/core/interaction/sensors/hal-interface#sensors_event_t)\ncontains:\n\n- a handle to the sensor that generated it\n- the timestamp at which the event was detected or measured, based on [`SystemClock.elapsedRealtimeNanos()`](https://developer.android.com/reference/android/os/SystemClock#elapsedRealtimeNanos())\n- and some data\n\nThe interpretation of the reported data depends on the sensor type. See\nthe [sensor type](/docs/core/interaction/sensors/sensor-types)\ndefinitions for details on what data is reported for each sensor type.\n\nExisting documentation\n----------------------\n\n### Targeted at developers\n\n- Overview\n - \u003chttps://developer.android.com/guide/topics/sensors/sensors_overview.html\u003e\n- SDK reference\n - \u003chttps://developer.android.com/reference/android/hardware/SensorManager\u003e\n - \u003chttps://developer.android.com/reference/android/hardware/SensorEventListener\u003e\n - \u003chttps://developer.android.com/reference/android/hardware/SensorEvent\u003e\n - \u003chttps://developer.android.com/reference/android/hardware/Sensor\u003e\n- Stack Overflow and tutorial websites\n - Because sensors documentation was sometimes lacking, developers resorted to Q\\&A websites like Stack Overflow to find answers.\n - Some tutorial websites exist as well, but do not cover the latest features like batching, significant motion and game rotation vectors.\n - The answers over there are not always right, and show where more documentation is needed.\n\n### Targeted at manufacturers\n\n- Overview\n - This [Sensors](/docs/core/interaction/sensors) page and its sub-pages.\n- Hardware abstraction layer (HAL)\n - [/platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h](https://android.googlesource.com/platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h)\n - Also known as \"sensors.h\"\n - The source of truth. First document to be updated when new features are developed.\n- Android CDD (Compatibility Definition Document)\n - [/compatibility/android-cdd.pdf](/static/docs/compatibility/android-cdd.pdf)\n - See sections relative to sensors.\n - The CDD is lenient, so satisfying the CDD requirements is not enough to ensure high quality sensors."]]