Ekran kalemi

Android 6.0 ve sonraki sürümler, Bluetooth (BT), Bluetooth Düşük Enerji (BTLE) veya USB üzerinden Bluetooth ekran kalemi bağlantıları için standart bir veri biçimini destekler. Platform, dokunma girişi ile ekran kalemi verileri arasındaki zamanlamayı ilişkilendirir ve ardından etkin uygulamada MotionEvents'i oluşturmak için ekran kalemi verilerini sağlar. Aşağıdaki bölümlerde OEM cihaz uygulayıcıları, ekran kalemi aksesuarı oluşturucular ve ekran kalemi uygulaması geliştiricileri için yönergeler sağlanmaktadır.

OEM cihaz uygulamaları için yönergeler

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

14 ve sonraki sürümlerde StylusButtonInputEventTest, bağlı bir ekran kaleminin davranışını taklit eder ve düğme etkinliklerinin doğru şekilde raporlanıp raporlanmadığını test eder. Alt sürümlerde geçici çözüm olarak, ekran kalemi etkinliklerini taklit edebilecek bir ekran kalemi aksesuarı veya emülatör oluşturmanızı öneririz.

Ekran kalemi aksesuarı üreticileri için kurallar

Cihaz uygulayıcıları, ekran kalemi cihazında destek uygulamak için ekran kalemi 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 ekran kalemi kullanıcı arayüzü cihazı (HID) tanımlayıcısını kullanmalıdır. Dokunmatik kalem cihazı, HID bilgilerini Android mobil cihaza gönderir. Böylece platform, MotionEvent sınıfını kullanarak dokunmatik kalem etkinlikleri oluşturmak için HID verilerini dokunmatik ekrandaki dokunma verileriyle ilişkilendirebilir. Android 14 ve sonraki sürümlerde, ekran kalemine basılan düğmeler de KeyEvent sınıfını kullanarak dahili etkinlikler oluşturur. Veriler Bluetooth (BT), Bluetooth Düşük Enerji (BTLE) veya USB üzerinden gönderilebilir.

Örnek HID tanımlayıcısı

Aşağıdaki örnek HID tanımlayıcısı, uç teması, basınç, birincil ve ikincil düğmeler, silgi ve seri numarasını bildirir. Eklediğiniz HID tanımlayıcı, Bluetooth üzerinden ekran kalemi tarafından raporlanan bilgileri doğru şekilde yansıtmalıdır. Bu bilgiler, mevcut özelliklerin herhangi bir alt kümesi olabilir.
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
}

Kalem uygulama geliştiricileri için yönergeler

Android platformu, eşlemeyi ve etkinlik ilişkilendirmesini otomatik olarak yönetir. Bu nedenle, hem mevcut hem de yeni uygulamalar varsayılan olarak Bluetooth ekran kalemini destekler. Android uygulamalarında ekran kalemini destekleme hakkında daha fazla bilgi edinmek için Android geliştirici belgelerine bakın.