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