stilus

Android 6.0 dan lebih tinggi mendukung format data standar untuk koneksi stilus Bluetooth melalui Bluetooth (BT), Bluetooth Hemat Energi (BTLE), atau USB. Platform mengkorelasikan waktu antara input sentuh dan data stilus kemudian menyediakan data stilus untuk merender MotionEvents ke aplikasi aktif. Bagian berikut memberikan panduan untuk pelaksana perangkat OEM, pembuat aksesori stylus, dan pengembang aplikasi stylus.

Pedoman untuk pelaksana perangkat OEM

Untuk mengaktifkan dukungan stilus Bluetooth, pelaksana perangkat OEM harus mendukung Bluetooth (dan harus mendukung BTLE untuk kompatibilitas yang lebih luas). Platform menangani pengumpulan data, korelasi waktu, dan rendering ke aplikasi untuk kejadian stylus yang didukung.

Saat ini, CTS Android tidak menyertakan pengujian untuk memastikan API yang ada untuk peristiwa sentuh mendukung perilaku default. Sebagai solusinya, sebaiknya buat aksesori stilus atau emulator yang dapat menyimulasikan kejadian stilus.

Pedoman untuk pembuat aksesori stylus

Untuk menerapkan dukungan pada perangkat stylus, pelaksana perangkat harus menggunakan Descriptor Perangkat Antarmuka Manusia Stylus (HID) yang ditunjukkan di bawah ini untuk menjelaskan bagaimana data stylus (sensitivitas tekanan, penghapus, tombol samping, ID perangkat, dll.) direpresentasikan. Perangkat stylus mengirimkan informasi HID ke perangkat seluler Android, memungkinkan platform untuk menghubungkan data HID dengan data sentuh dari layar sentuh untuk menghasilkan peristiwa stylus melalui MotionEvent. Data dapat dikirim melalui Bluetooth (BT), Bluetooth Low Energy (BTLE), atau USB.

deskriptor HID

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
}

Pedoman untuk pengembang aplikasi stilus

Platform Android 6.0 secara otomatis menangani pasangan dan korelasi peristiwa, sehingga aplikasi yang ada dan baru yang berjalan di Android 6.0 mendukung stylus Bluetooth secara default. Untuk detail tentang Bluetooth stylus API, lihat developer.android.com .