Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Android dari awal: Hardware sensor

by
Difficulty:BeginnerLength:ShortLanguages:
This post is part of a series called Android From Scratch.
Android From Scratch: Understanding Android Broadcasts
Android From Scratch: Using REST APIs

Indonesian (Bahasa Indonesia) translation by Sandi Muamar (you can also view the original English article)

Salah satu hal yang membuat mengembangkan perangkat mobile yang berbeda dari platform lain adalah bahwa ponsel atau tablet penuh  dengan sensor dan hardware lainnya yang pengembang dapat memanfaatkan untuk data input. Dalam tutorial ini Anda akan diperkenalkan kepada framework Android sensor. Anda akan belajar bagaimana untuk mendeteksi sensor apa tersedia pada perangkat dan bagaimana untuk membaca data dari sensor tersebut.

Perangkat sensor

Ada tiga kategori utama dasar sensor untuk menyadari: motion, environmental, dan posisi perangkat. Motion sensor mendeteksi perubahan dalam pasukan di sekitar tiga sumbu perangkat: X, Y dan Z, seperti yang ditunjukkan di sini:

The X Y and Z axes of a mobile device

Sensor gerak termasuk giroskop, accelerometer dan sensor rotasi vektor.

Sensor Environmental mengumpulkan informasi tentang lingkungan yang telepon. Ini termasuk kelembaban dan suhu sensor, Deteksi cahaya, dan barometers.

Kategori final dasar sensor, posisi perangkat, melakukan persis apa yang Anda harapkan: mendeteksi posisi perangkat. Kategori ini berisi sensor orientasi dan sebuah magnetometer.

Setiap sensor yang tidak jatuh di bawah salah satu kategori dasar dianggap sensor komposit. Sensor ini tidak benar-benar sensor dalam arti tradisional, tetapi sebaliknya mengumpulkan data dari berbagai sensor fisik lainnya pada perangkat dan TI agregat. Contoh termasuk penghitung langkah, gravitasi sensor, dan sensor rotasi vektor.

Membaca Sensor Data

Sekarang bahwa Anda tahu sedikit tentang jenis sensor di perangkat mobile, saatnya untuk mulai membaca data dari hardware sebenarnya. Mari kita mulai dengan menemukan sensor apa saja yang tersedia pada perangkat.

Menemukan sensor pada perangkat

Untuk mengakses sensor pada perangkat, Anda akan perlu menggunakan SensorManager kelas, yang Anda dapat mengambil sebagai layanan sistem dari suatu Activity.

Setelah Anda memiliki SensorManager, Anda dapat mengambil default Sensor berdasarkan jenis, atau mengambil List Sensor objek berdasarkan parameter jenis. Untuk contoh ini kita akan mengambil List semua Sensor objek, seperti:

Anda akan melihat bahwa kita digunakan TYPE_ALL di sini. Jika kita hanya ingin subset tertentu dari sensor, kita bisa passing dalam salah satu atribut type didukung, seperti item dalam berikut, noninclusive, list.

Setelah Anda memiliki Sensor(s) yang Anda ingin bekerja dengan, Anda dapat mulai mengambil data dari mereka.

Sensor Event Listener

Setiap objek Sensor yang berisi informasi tentang hardware fisik untuk sensor yang, seperti daya, masukan penundaan, nama, jenis, dan vendor. Jika Anda ingin untuk mengambil informasi dari sensor yang, namun, Anda akan perlu untuk mendaftar SensorEventListener yang akan dipanggil pada mengatur interval dengan bacaan informasi baru.

Ada empat kecepatan membaca tertentu: fastest, game, normal, dan UI. Beberapa akan memungkinkan Anda untuk membaca informasi lebih sering, tetapi akan mengkonsumsi lebih banyak daya dari perangkat. Kurang sering sensor penudung, konsumsi daya yang akan digunakan.

Setelah SensorEventListener terdaftar, metode onSensorChanged listener akan dipanggil dengan SensorEvent baru setiap kali sensor penudung. SensorEvent membungkus objek Sensor yang menyediakan data, serta informasi tentang waktu, akurasi sensor, dan masukan data aktual.

Input data disimpan dalam array float disebut values. Panjang values dapat bervariasi tergantung pada sensor. Sebagai contoh, accelerometer akan memiliki tiga nilai (X, Y dan Z input), sedangkan barometer hanya akan memiliki satu nilai. Bila Anda menggunakan sensor data, memahami data apa yang tersedia dan bagaimana disimpan dalam array values akan menjadi penting untuk memahami bagaimana Anda akan membangun keluar aplikasi Anda, sementara juga menghindari gangguan dari isu-isu, seperti ArrayIndexOutOfBoundsException.

Segmen kode di atas, ketika menjalankan dengan perangkat accelerometer, akan memberikan output seperti ini:

Dan karena listener adalah memberikan masukan dari waktu ke waktu, dapat dimasukkan ke grafik untuk menampilkan informasi yang mirip dengan berikut (meskipun Perpustakaan grafik sendiri berada di luar cakupan tutorial ini).

Graph showing changes in X Y and Z axes over time

Event Triggers

Sementara SensorEventListener akan terus memberikan informasi dari waktu ke waktu, TriggerEventListener akan listern event dan kemudian segera menonaktifkan itu sendiri. listener semacam ini digunakan untuk hal-hal seperti gerakan yang signifikan. Anda dapat menambahkan TriggerEventListener untuk SensorManager seperti.

Jika Sensor diteruskan ke requestTriggerSensor sensor gerak yang signifikan, maka atas akan memiliki output ketika perangkat bergerak seperti:

Satu hal yang harus diperhatikan SensorEventListener dan TriggerEventListener adalah harus di unregistered dari SensorManager ketika kamu sudah memakainya, seperti di onDestroy dalam Fragment atau Activity class, untuk meminimalisir memory leak dari aplikasimu

Kesimpulan

Dalam tutorial ini Anda telah diperkenalkan ke Android sensor framework. Anda telah belajar bagaimana menemukan sensor pada perangkat dan mengumpulkan informasi dari mereka. Menggunakan ini, Anda dapat membuat aplikasi yang kompleks yang sadar enviroment mereka, input special, dan tindakan dari user. Belajar untuk menggunakan sensor data juga akan membuka banyak menarik fitur dan fungsi yang dapat Anda gunakan untuk aplikasi Anda.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.