Android 6.0 dan yang lebih tinggi mendukung format data standar untuk koneksi stilus Bluetooth melalui Bluetooth (BT), Bluetooth Hemat Energi (BTLE), atau USB. Tujuan platform menghubungkan waktu antara input sentuh dan data stilus kemudian memberikan data stilus untuk merender MotionEvents ke aplikasi aktif. Hal berikut bagian ini memberikan pedoman 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.
Di versi 14 dan yang lebih baru,
StylusButtonInputEventTest
mengemulasi perilaku stilus yang terhubung dan menguji
peristiwa tombol yang dilaporkan dengan benar. Sebagai seorang
solusi untuk versi yang lebih rendah, sebaiknya buat aksesori stilus atau emulator yang dapat
melakukan simulasi peristiwa stilus.
Panduan untuk kreator aksesori stilus
Untuk mengimplementasikan dukungan pada perangkat stilus, pengimplementasi perangkat harus menggunakan Stilus
Deskripsi Perangkat Antarmuka Manusia (HID) ditampilkan di bawah untuk menjelaskan cara data stilus
(sensitivitas tekanan, penghapus, tombol, ID perangkat, level baterai, status pengisian daya, dll.) adalah
terwakili. Perangkat stilus mengirimkan informasi HID ke perangkat seluler Android,
memungkinkan platform untuk menghubungkan data HID dengan data sentuh dari layar sentuh
untuk menghasilkan peristiwa stilus menggunakan
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 tip, tekanan, tombol utama dan sekunder, penghapus, dan nomor seri. Keterangan HID yang Anda sertakan harus secara akurat mencerminkan apa yang sedang dilaporkan oleh stilus melalui bluetooth, yang bisa jadi merupakan 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, jadi baik aplikasi yang sudah ada maupun yang baru mendukung stilus Bluetooth secara default. Untuk mempelajari lebih lanjut cara mendukung stilus di aplikasi Android, lihat dokumentasi Developer Android.