Android 6.0 ve sonraki sürümler Bluetooth ekran kalemi için standart bir veri biçimini destekler Bluetooth (BT), Bluetooth Düşük Enerji (BTLE) veya USB üzerinden bağlantılar. 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 uygulayıcıları için yönergeler
Bluetooth ekran kalemi desteğini etkinleştirmek için OEM cihaz uygulayıcıları Bluetooth'u desteklemelidir (ve daha geniş uyumluluk için BTLE'yi desteklemelidir). Platform, verileri uygulamayla ilgili toplama, zamanlama korelasyonu ve oluşturma gibi ekran kalemi etkinlikleri.
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.
Kalem aksesuarı üreticileri için yönergeler
Ekran kalemi cihazında destek sağlamak için cihaz uygulayıcılarının ekran kalemi kullanması gerekir
Ekran kalemi verilerinin nasıl kullanıldığını açıklamak için aşağıda gösterilen insan arayüz cihazı (HID) tanımlayıcısı
(baskı hassasiyeti, silgi, düğmeler, cihaz kimliği, pil seviyesi, şarj durumu vb.)
temsil edilir. Ekran kalemi cihazı, HID bilgilerini Android mobil cihaza gönderir.
platformun HID verilerini dokunmatik ekrandan alınan dokunma verileriyle ilişkilendirmesini sağlamak
kullanarak ekran kalemi etkinlikleri
MotionEvent
sınıfını kullanır. Android 14 ve sonraki sürümlerde, ekran kalemine basıldığında KeyEvent
sınıfı kullanılarak dahili etkinlikler de oluşturulur.
Veriler Bluetooth (BT), Bluetooth Düşük Enerji (BTLE) veya USB üzerinden gönderilebilir.
Örnek HID tanımlayıcısı
Aşağıdaki örnek HID açıklayıcısı ipuçları iletişim, basınç, birincil ve ikincil düğmeleri bildirir. ve seri numarası gibi bilgileri de içerir. 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 }
Ekran kalemi uygulaması geliştiriciler 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.