Menulis Driver Di Android Things? Inilah Caranya!


Dalam artikel ini Anda akan berguru Android Things dengan menulis kelas-kelas gres yang dikenal sebagai driver, yang membuat antarmuka dengan periferal semakin mudah. Artikel ini akan memfokuskan pada tipe driver yang bisa ditulis untuk Android Things.

Driver User-Space Android Things

Driver user-space mengizinkan pengembang untuk memasukkan perangkat keras gres ke dalam framework Android, memungkinkannya berinteraksi dengan Android API yang sudah ada. Meskipun Anda bisa berkomunikasi pribadi langsung dengan perangkat melalui standar input/output API, menulis suatu driver kustom akan memungkinkan aplikasi Anda mendukung bermacam-macam profil perangkat keras dan secara pribadi bekerja dengan Android OS.  Selain itu, kode Anda akan lebih terstruktur dan dengan gampang mendukung daur ulang kode.

Ada tiga pembagian terstruktur mengenai primer driver yang akan Anda pelajari di artikel ini: driver GPS, driver Human Input Device (HID), dan driver sensor.

Driver GPS

Jika perangkat Anda membutuhkan informasi lokasi, maka Anda membutuhkan perangkat GPS ke dalam aplikasi Anda. Dengan pendaftaran periferal GPS Anda ke UserDriverManager, Anda akan bisa menginjeksikan data lokasi perangkat Anda ke framework Android, mengizinkannya untuk dimanfaatkan oleh layanan lokasi Android. Ini akan mengombinasikan data GPS dan WiFi serta sumber lokasi lainnya untuk menyediakan hasil data yang lebih akurat untuk aplikasi Anda.

Biasanya modul GPS Anda akan terhubung dengan suatu perangkat Android Things melalui koneksi UART. Kita tidak akan terlalu dalam membahas UART dalam tutorial ini, tetapi Anda bisa berguru segala sesuatu perihal cara kerjanya dalam tutorial sebelumnya di seri ini.


 Dalam artikel ini Anda akan berguru Android Things dengan menulis kelas Menulis Driver di Android Things? Inilah Caranya!

Untuk bekerja dengan modul GPS, Anda harus membuat suatu komponen Java gres untuk berkomunikasi dengan perangkat gres Anda. Akan kita namai kelas ini GpsDriverService.

Untuk meregistrasi modul GPS Anda dengan framework Andoid untuk data lokasi, sebelumnya Anda harus membuat suaatu objek GpsDriver dalam GpsDriverService Anda. Objek ini bisa diregistrasikan dengan UserDriverManager dengan panggilan registerGpsDriver().

Begitu modul GPS Anda telah mendapatkan data lokasi dan mengirimkannya ke perangkat Android Things melalui koneksi serial UART, Anda harus mem-parse-nya dan menambahkannya ke objek Location.

Kebanyakan modul GPS akan mengembalikan data lokasi dalam format NMEA, meskipun parsing data berada di luar lingkup pembahasan tutorial ini. Ada empat jenis item data yang disyaratkan untuk objek Location Anda: akurasi, waktu, garis lintang, dan garis bujur. Anda juga bisa menentukan untuk memasukkan ketinggian, posisi, dan kecepatan (jika perangkatnya sedang bergerak).

Sekalinya objek Location Anda terisi, Anda bisa memasukkannya ke GpsDriver dengan memanggil reportLocation().

Begitu komponen Anda selesai dibuat, Anda harus menginstansiasinya, mulai membaca data, dan mendengarkan pembaruannya di aplikasi Anda.

Apabila aplikasinya sudah selesai, Anda harus unregister driver tersebut dan menghapus listener lokasinya.

Sebagai tambahan, Anda juga harus memastikan bahwa aplikasi Anda mempunyai izin ACCESS_FINE_LOCATION. Anda bisa menemukan detail untuk memastikan aplikasi mempunyai izin yang disyaratkan dalam tutorial ini.


  • Android M

    Memahami Perizinan di Android M

    Paul Trebilcox-Ruiz

Ketika bekerja pertama kali dengan aplikasi yang memakai izin gres di Android Things, Anda harus me-reboot perangkat Anda sehabis memasang aplikasinya untuk memastikan bahwa izin telah diberikan.

Driver Human Input Device


Framework Android dilengkapi dengan suatu pipeline yang built-in untuk menangani masukan dari tombol pengguna dan even-even gerakan, yang dipakai untuk hal-hal menyerupai tombol media, kontroler joystick, dan tekanan pada tombol keyboard. Dengan membuat InputDriver, Anda bisa mengikat interaksi insan Anda sendiri ke pipeline input Android standar sehingga perangkat Anda bisa bereaksi secara sempurna dengan pengguna Anda.

Supaya lebih sederhana, kita hanya akan melihat even input tombol dan bagaimana mengikatnya dengan framework Android, meskipun even gerakan juga ditangani dengan cara yang sangat serupa. Hampir sama dengan bab simpulan tutorial ini, kita akan mengabaikan perincian implementasi yang lebih spesifik dari perangkat input dan berfokus pada mengikat even yang diterima ke platform Android.

Even-Even Tombol


Ketika suatu even tombol terjadi dari tombol yang telah Anda lekatkan ke perangkat Android Things, Anda akan merekamnya dan mengirimkannya ke pipeline Android Anda.

Hal pertama yang akan Anda butuhkan ialah membuat suatu objek InputDriver dengan memakai Service gres dan menginisialisasinya. Drivernya bisa diinisialisasi dengan builder yang mendapatkan tipe input, nama input Anda, sebuah versi, dan suatu kode kunci yang diwakili tombol tersebut.

Sekalinya InputDriver Anda diinisialisasi, Anda bisa meregistrasinya dengan UserDriverManager dengan memakai panggilan registerInputDriver().

Begitu Anda selesai pendaftaran dengan InputDriver Anda, layanan driver sanggup menunggu even yang dikirim dari kelas implementasi tombol Anda. Jika tombol kustom Anda ditekan, Anda bisa memberitahu layanannya dan membuat KeyEvent baru, yang bisa ditempatkan di pipeline masukan Android dengan memakai metode emit(KeyEvent). Metode ini akan mengembalikan nilai true jikalau KeyEvent sanggup mengirim ke framework Android, dan false jikalau terjadi kesalahan.

Hal terakhir yang akan Anda butuhkan ialah unregister objek InputDriver Anda dari UserDriverManager ketika aplikasi Anda sudah selesai berjalan.

Mendengarkan Event Input


Sekarang Anda udah bisa memancarkan even input tombol ke pipeline input Android, saatnya mendengarkannya. Di sinilah semua pekerjaan untuk menyalurkan even tombol gres Anda ke framework Android alhasil terbayar. Yang perlu Anda tambahkan di Activity aplikasi Anda ialah metode untuk ketika KeyEvent sedang down, dan satu metode lagi untuk ketika KeyEvent sedang up. Di metode-metode tersebut, Anda bisa mengecek kode kunci KeyEvent dan menangani evennya dengan benar.

Driver Sensor


Beberapa komponen paling umum yang akan Anda gunakan dengan suatu papan Android Things ialah sensor. Karena Android mempunyai framework sensor yang hebat, masuk nalar jikalau kita ingin bisa menambahkan data dari komponen eksternal kita ke dalam pipeline tersebut.

Untuk memulai, Anda harus membuat suatu kelas Java gres yang berinteraksi dengan sensor perangkat keras Anda. Kelas ini harus memperluas UserSensorDriver dan mengimplementasikan metode read(). Selain itu, jikalau sensor Anda mendukung rendah daya atau mode tidur, Anda bisa mengesampingkan metode setEnabled() dan bertindak sesuai dengan itu.

Kutipan kode berikut ialah versi yang stubbed dari komponen kelas yang akan membaca data melalui Peripheral I/O API untuk mendapatkan nilai data X, Y, Z dan mengembalikan UserSensorReading yang baru. Jika datanya dikala ini tidak tersedia, kelas tersebut akan melemparkan IOException baru.

Sekalinya kelas komponen Anda tercipta, Anda bisa membuat Service gres yang akan menginstansiasinya, sekaligus membuat objek UserSensor gres dan melekatkannya ke pipeline sensor Android.

Ada dua tipe sensor yang bisa Anda tambahkan ke pipeline ini. Pertama ialah tipe yang predefined, menyerupai gyroscope, accelerometer, pencahayaan, dan proximity, dan bisa ditambahkan ke pipeline dengan cara itu:

Anda akan menemui bahwa SensorManager.DynamicSensorCallback dipakai untuk teladan di ata. Ini akan memberitahu aplikasi Anda bahwa sensor sudah siap untuk frameworknya, alasannya ialah pendaftaran butuh sekian waktu, sehingga framework tidak akan mencoba untuk membaca data dari perangkat yang tidak ada.


 Dalam artikel ini Anda akan berguru Android Things dengan menulis kelas Menulis Driver di Android Things? Inilah Caranya!

Tipe kedua ialah custom, yang meliputi apa saja yang belum didukung di Android. Beberapa teladan ialah tingkat pH air, kecepatan angin, deteksi gerakan, atau apa saja yang bisa Anda ukur dengan perangkat keras yang baru.

Dengan mengganti parameter builder setType()  dengan setCustomType(), Anda bisa mengganti nama perangkat dan mode pelaporan untuk mengontrol bagaimana akan menjadi pemicu di pipeline.

Terakhir, apabila aplikasi Anda sudah selesai berjalan, Anda harus unregister komponen gres Anda dari UserDriverManager.

Kesimpulan


Di tutorial ini, Anda telah berguru bagaimana memakai komponen yang dibentuk dengan Peripheral I/O API dan mengikatnya ke framework Android yang sesuai untuk dipakai di aplikasi Android Things Anda.

Di titik ini, dalam seri ini, Anda telah mempunyai semua sarana yang diharapkan untuk membuat proyek-proyek Android Things yang lebih mendalam lainnya. Selain menulis driver Anda sendiri, Anda bisa menemukan driver yang sudah ditulis dan implementasikan ke proyek Anda sendiri. Anda bisa menemukan sumber untuk driver-driver itu dari repo GitHub Android Things, atau pelajari beberapa contoh kerja dengan memakai driver-driver tersebut.

dillansir dari tutsplus.com/tutorials

diterjemahkan dari bahasa Inggris oleh Kurniawan Sugi Purwanto
Perhatian! Dengan mengklik tombol download berarti anda setuju dengan Syarat dan Ketentuan. Anda menemukan Link Download Rusak? Segera Lapor Disini

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel