סטיילוס

אנדרואיד 6.0 ואילך תומך בפורמט נתונים סטנדרטי עבור חיבורי Bluetooth באמצעות Bluetooth (BT), Bluetooth Low Energy (BTLE) או USB. הפלטפורמה מתאמת תזמון בין קלט מגע ונתוני חרט ואז מספקת נתוני חרט לעיבוד MotionEvents לאפליקציה הפעילה. הסעיפים הבאים מספקים הנחיות למיישמי מכשירי OEM, יוצרי אביזרי סטיילוס ומפתחי אפליקציות סטיילוס.

הנחיות למיישמי מכשירי OEM

כדי לאפשר תמיכה בסטיילוס Bluetooth, מיישמי מכשירי OEM חייבים לתמוך ב-Bluetooth (וצריכים לתמוך ב-BTLE לתאימות רחבה יותר). הפלטפורמה מטפלת באיסוף נתונים, מתאם תזמון ועיבוד לאפליקציה עבור אירועי סטיילוס נתמכים.

ב-14 ומעלה, StylusButtonInputEventTest מחקה את ההתנהגות של עט מחובר ובודק שאירועי כפתור מדווחים כהלכה. כפתרון עוקף עבור גרסאות נמוכות יותר, אנו ממליצים ליצור אביזר סטיילוס או אמולטור שיכול לדמות אירועי חרט.

הנחיות ליוצרי אביזרי סטיילוס

כדי ליישם תמיכה בהתקן סטיילוס, מיישמי התקן חייבים להשתמש ב-Stylus Human Interface Device (HID) המוצג להלן כדי לתאר כיצד מיוצגים נתוני העט (רגישות ללחץ, מחק, לחצנים, מזהה מכשיר, רמת סוללה, מצב טעינה וכו'). . מכשיר הסטיילוס שולח את מידע ה-HID למכשיר הנייד של אנדרואיד, מה שמאפשר לפלטפורמה לתאם נתוני HID עם נתוני מגע ממסך המגע כדי להפיק אירועי סטיילוס באמצעות מחלקה MotionEvent . באנדרואיד 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, עיין בתיעוד למפתחי Android .