Ekran kalemi

Android 6.0 ve üzeri, Bluetooth (BT), Bluetooth Low Energy (BTLE) veya USB üzerinden Bluetooth kalemi bağlantıları için standart bir veri formatını destekler. Platform, dokunma girişi ile kalem verileri arasındaki zamanlamayı ilişkilendirir ve ardından MotionEvents'in aktif uygulamaya işlenmesi için kalem verileri sağlar. Aşağıdaki bölümlerde OEM cihaz uygulayıcıları, ekran kalemi aksesuarı yaratıcıları ve ekran kalemi uygulaması geliştiricileri için yönergeler sağlanmaktadır.

OEM cihaz uygulayıcıları için yönergeler

Bluetooth kalemi desteğini etkinleştirmek için, OEM cihaz uygulayıcılarının Bluetooth'u desteklemesi gerekir (ve daha geniş uyumluluk için BTLE'yi desteklemesi gerekir). Platform, desteklenen ekran kalemi etkinlikleri için veri toplama, zamanlama korelasyonu ve uygulamaya görüntü oluşturma işlemlerini yönetir.

14 ve üzeri sürümlerde StylusButtonInputEventTest , bağlı bir kalemin davranışını taklit eder ve düğme olaylarının doğru şekilde bildirildiğini test eder. Daha düşük sürümler için geçici bir çözüm olarak, ekran kalemi olaylarını simüle edebilen bir ekran kalemi aksesuarı veya öykünücüsü oluşturmanızı öneririz.

Ekran kalemi aksesuarı yaratıcıları için yönergeler

Bir prob ucu cihazında destek uygulamak için cihaz uygulayıcıları, prob ucu verilerinin (basınç hassasiyeti, silgi, düğmeler, cihaz kimliği, pil seviyesi, şarj durumu vb.) nasıl temsil edildiğini açıklamak üzere aşağıda gösterilen Stylus İnsan Arayüzü Cihazı (HID) Tanımlayıcısını kullanmalıdır. . Ekran kalemi cihazı, HID bilgilerini Android mobil cihazına göndererek platformun, MotionEvent sınıfını kullanarak ekran kalemi olayları üretmek için HID verilerini dokunmatik ekrandaki dokunmatik verilerle ilişkilendirmesini sağlar. Android 14 ve sonraki sürümlerde ekran kalemindeki düğmeye basıldığında KeyEvent sınıfını kullanarak dahili olaylar da oluşturulur. Veriler Bluetooth (BT), Bluetooth Düşük Enerji (BTLE) veya USB üzerinden gönderilebilir.

Örnek HID tanımlayıcı

Aşağıdaki örnek HID tanımlayıcısı uç temasını, basıncı, birincil ve ikincil düğmeleri, silgiyi ve seri numarasını bildirir. Eklediğiniz HID tanımlayıcısı, mevcut yeteneklerin herhangi bir alt kümesi olabilecek, Bluetooth aracılığıyla kalem tarafından bildirilenleri doğru bir şekilde yansıtmalıdır.
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
}

Ekran kalemi uygulaması geliştiricileri için yönergeler

Android platformu eşleştirmeyi ve olay korelasyonunu otomatik olarak yönetir; böylece hem mevcut hem de yeni uygulamalar varsayılan olarak Bluetooth kalemini destekler. Android uygulamalarında ekran kalemlerini destekleme hakkında daha fazla bilgi edinmek için Android Geliştirici belgelerine bakın.