Android 6.0 dan yang lebih tinggi mendukung format data standar untuk koneksi stilus Bluetooth melalui Bluetooth (BT), Bluetooth Hemat Energi (BTLE), atau USB. Platform ini menghubungkan pengaturan waktu antara input sentuh dan data stilus, lalu menyediakan data stilus untuk merender MotionEvents ke aplikasi aktif. Bagian berikut memberikan panduan untuk pengimplementasi perangkat OEM, pembuat aksesori stilus, dan developer aplikasi stilus.
Panduan untuk pengimplementasi perangkat OEM
Untuk mengaktifkan dukungan stilus Bluetooth, pengimplementasi perangkat OEM harus mendukung Bluetooth (dan harus mendukung BTLE untuk kompatibilitas yang lebih luas). Platform ini menangani pengumpulan data, korelasi pengaturan waktu, dan rendering ke aplikasi untuk peristiwa stilus yang didukung.
Pada versi 14 dan yang lebih tinggi,
StylusButtonInputEventTest
mengemulasi perilaku stilus yang terhubung dan menguji
apakah peristiwa tombol dilaporkan dengan benar. Sebagai
solusi untuk versi yang lebih rendah, sebaiknya buat aksesori stilus atau emulator yang dapat
menyimulasikan peristiwa stilus.
Panduan untuk kreator aksesori stilus
Untuk menerapkan dukungan pada perangkat stilus, pengimplementasi perangkat harus menggunakan Deskripsi
Perangkat Antarmuka Manusia (HID) Stilus yang ditampilkan di bawah untuk mendeskripsikan cara data stilus
(sensitivitas tekanan, penghapus, tombol, ID perangkat, level baterai, status pengisian daya, dll.)
ditampilkan. Perangkat stilus mengirim informasi HID ke perangkat seluler Android,
sehingga platform dapat mengaitkan data HID dengan data sentuh dari layar sentuh
untuk menghasilkan peristiwa stilus menggunakan
class
MotionEvent
. Di Android 14 dan yang lebih tinggi, penekanan tombol pada stilus juga menghasilkan
peristiwa internal menggunakan
class KeyEvent
.
Data dapat dikirim melalui Bluetooth (BT), Bluetooth Hemat Energi (BTLE), atau USB.
Contoh deskripsi HID
Contoh deskripsi HID berikut melaporkan kontak ujung, tekanan, tombol utama dan sekunder, penghapus, dan nomor seri. Deskripsi HID yang Anda sertakan harus mencerminkan secara akurat apa yang dilaporkan oleh stilus melalui bluetooth, yang dapat berupa subset dari kemampuan yang tersedia.UsagePage(Digitizer) Usage(Pen) Collection(Application) Usage(Stylus) Collection(Logical) Usage(Tip Pressure) Logical Minimum(0) Logical Maximum(1023) Report Count(1) Report Size(10) Input(Data, Variable, Absolute, No Null) Usage(Barrel Switch) Usage(Secondary Barrel Switch) Usage(Tip Switch) Usage(Invert) Logical Maximum(1) Report Count(4) Report Size(1) Input(Data, Variable, Absolute, No Null) Usage(Transducer Serial Number) Report Count(1) Report Size(128) Feature(Constant, Variable) EndCollection EndCollection unsigned char HID_DESC[] = { 0x05, 0x0D, // UsagePage(Digitizer) 0x09, 0x02, // Usage(Pen) 0xA1, 0x01, // Collection(Application) 0x09, 0x20, // Usage(Stylus) 0xA1, 0x02, // Collection(Logical) 0x09, 0x30, // Usage(Tip Pressure) 0x15, 0x00, // Logical Minimum(0) 0x26, 0xFF, 0x03, // Logical Maximum(1023) 0x95, 0x01, // Report Count(1) 0x75, 0x0A, // Report Size(10) 0x81, 0x02, // Input(Data, Variable, Absolute, No Null) 0x09, 0x44, // Usage(Barrel Switch) 0x09, 0x5A, // Usage(Secondary Barrel Switch) 0x09, 0x42, // Usage(Tip Switch) 0x09, 0x3C, // Usage(Invert) 0x25, 0x01, // Logical Maximum(1) 0x95, 0x04, // Report Count(4) 0x75, 0x01, // Report Size(1) 0x81, 0x02, // Input(Data, Variable, Absolute, No Null) 0x09, 0x5B, // Usage(Transducer Serial Number) 0x95, 0x01, // Report Count(1) 0x75, 0x80, // Report Size(128) 0xB1, 0x03, // Feature(Constant, Variable) 0xC0, // End Collection 0xC0, // End Collection }
Panduan untuk developer aplikasi stilus
Platform Android secara otomatis menangani penyambungan dan korelasi peristiwa, sehingga aplikasi yang ada dan baru mendukung stilus Bluetooth secara default. Untuk mempelajari lebih lanjut cara mendukung stilus di aplikasi Android, lihat dokumentasi Developer Android.