ב-Android מגרסה 6.0 ואילך יש תמיכה בפורמט נתונים סטנדרטי לחיבורי עט Bluetooth דרך Bluetooth (BT), Bluetooth Low Energy (BTLE) או USB. הפלטפורמה מתאימה את התזמון בין קלט המגע לנתוני העט, ולאחר מכן מספקת את נתוני העט כדי להציג את האירועים של MotionEvents באפליקציה הפעילה. בקטעים הבאים מפורטות הנחיות למטמיעים של מכשירים של יצרני ציוד מקורי, ליוצרים של אביזרי עט ולמפתחי אפליקציות לעט.
הנחיות למטמיעים של מכשירים של יצרני ציוד מקורי
כדי להפעיל תמיכה בעט Bluetooth, למטמיעים של מכשירים של יצרני ציוד מקורי (OEM) צריכה להיות תמיכה ב-Bluetooth (ומומלץ שתהיה תמיכה ב-BTLE לצורך תאימות רחבה יותר). הפלטפורמה מטפלת באיסוף הנתונים, בקורלציה של התזמון ובעיבוד הנתונים באפליקציה עבור אירועי עט מגע נתמכים.
בגרסה 14 ואילך, הפונקציה StylusButtonInputEventTest
מחקה את ההתנהגות של עט מחובר ובודקת שהדיווח על אירועי לחצנים תקין. כפתרון זמני לגרסאות ישנות יותר, מומלץ ליצור אביזר או אמולטור של עט stylus שיכול לדמות אירועים של עט stylus.
הנחיות ליוצרים של אביזרים לסטיילוס
כדי להטמיע תמיכה במכשיר סטיילוס, מפתחי המכשיר צריכים להשתמש בתיאור של מכשיר ה-Stylus לממשק משתמש (HID) שמוצג בהמשך, כדי לתאר את האופן שבו מיוצגים נתוני הסטיילוס (רגישות ללחץ, מחק, לחצנים, מזהה מכשיר, רמת סוללה, סטטוס טעינה וכו'). מכשיר הסtylus שולח את פרטי ה-HID למכשיר הנייד עם Android, ומאפשר לפלטפורמה לשייך נתוני HID לנתוני מגע מהמסך המגע כדי ליצור אירועי סtylus באמצעות הכיתה MotionEvent
. ב-Android 14 ואילך, לחיצות על הלחצנים בעט הדיגיטלי יוצרות גם אירועים פנימיים באמצעות הכיתה KeyEvent
.
אפשר לשלוח נתונים באמצעות Bluetooth (BT), Bluetooth עם צריכת אנרגיה נמוכה (BTLE) או USB.
דוגמה לתיאור HID
בתיאור ה-HID לדוגמה הבא מדווחים על מגע עם קצה, לחץ, לחצנים ראשיים ומשניים, מחיקה ומספר סידורי. מתאר ה-HID שצריך לכלול צריך לשקף במדויק את מה שמדווח על ידי העט הדיגיטלי דרך Bluetooth, ויכול להיות כל קבוצת משנה של היכולות הזמינות.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 }
הנחיות למפתחים של אפליקציות לסטיילוס
פלטפורמת Android מטפלת באופן אוטומטי בהתאמה ובקורלציה של אירועים, כך שגם אפליקציות קיימות וגם אפליקציות חדשות תומכות בסטיילוס Bluetooth כברירת מחדל. מידע נוסף על תמיכה בעטים באפליקציות ל-Android זמין במסמכי התיעוד למפתחים של Android.