Android 6.0 以上版本支援透過藍牙 (BT)、藍牙低功耗 (BTLE) 或 USB 連線的藍牙觸控筆標準資料格式。 平台會對觸控輸入和觸控筆資料之間的時間建立關聯 觸控筆資料,將 MotionEvents 轉譯至使用中的應用程式。下列 章節提供了 OEM 裝置實作者、觸控筆配件創作者的指南, 觸控筆應用程式開發人員
原始設備製造商 (OEM) 裝置導入者指南
如要啟用藍牙觸控筆支援功能,原始設備製造商 (OEM) 裝置實作者必須支援藍牙 且應支援 BTLE 以提升相容性。平台處理資料 針對支援的應用程式,收集、時間關聯及轉譯至應用程式 觸控筆事件
14 以上版本
StylusButtonInputEventTest
會模擬已連結的觸控筆和測試的行為
確保系統正確回報按鈕事件針對較舊版本,我們建議您建立可模擬觸控筆事件的觸控筆配件或模擬器,做為解決方法。
觸控筆配件製造商指南
如要在觸控筆裝置上實作支援功能,裝置實作者必須使用下方的觸控筆人機介面裝置 (HID) 描述符,說明如何呈現觸控筆資料 (壓力靈敏度、橡皮擦、按鈕、裝置 ID、電池電量、充電狀態等)。觸控筆裝置將 HID 資訊傳送至 Android 行動裝置,
可讓平台將 HID 資料與觸控螢幕的觸控資料建立關聯
產生觸控筆事件
MotionEvent
類別在 Android 14 以上版本中,按下觸控筆的按鈕也會產生
內部事件
KeyEvent
類別。
資料可透過藍牙 (BT)、藍牙低功耗 (BTLE) 或 USB 傳送。
HID 描述元範例
下列 HID 描述元範例會報告提示聯絡、壓力、主要和次要按鈕 和序號。您所納入的 HID 描述元應準確反映觸控筆透過藍牙回報的內容,這可能會是可用功能的任何子集。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 應用程式中支援觸控筆,請參閱 Android 開發人員說明文件。