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.