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