Android 6.0 और इसके बाद के वर्शन में, ब्लूटूथ (बीटी), ब्लूटूथ लो एनर्जी (बीटीएलई) या यूएसबी के ज़रिए, ब्लूटूथ स्टाइलस कनेक्शन के लिए स्टैंडर्ड डेटा फ़ॉर्मैट की सुविधा उपलब्ध है. प्लैटफ़ॉर्म, टच इनपुट और स्टाइलस डेटा के बीच टाइमिंग को कोरिलेट करता है. इसके बाद, चालू ऐप्लिकेशन को MotionEvents रेंडर करने के लिए स्टाइलस डेटा उपलब्ध कराता है. यहां दिए गए सेक्शन में, ओईएम डिवाइस बनाने वाली कंपनियों, स्टाइलस ऐक्सेसरी बनाने वाली कंपनियों, और स्टाइलस ऐप्लिकेशन डेवलपर के लिए दिशा-निर्देश दिए गए हैं.
ओईएम डिवाइस बनाने वाली कंपनियों के लिए दिशा-निर्देश
ब्लूटूथ स्टाइलस की सुविधा चालू करने के लिए, ओईएम डिवाइस बनाने वाली कंपनियों को ब्लूटूथ की सुविधा देनी होगी. साथ ही, ज़्यादा डिवाइसों के साथ काम करने की सुविधा देने के लिए, बीटीएलई की सुविधा भी देनी चाहिए. प्लैटफ़ॉर्म, स्टाइलस के इवेंट के लिए डेटा कलेक्शन, टाइमिंग कोरिलेशन, और ऐप्लिकेशन को रेंडर करने की प्रोसेस को मैनेज करता है.
Android 14 और इसके बाद के वर्शन में, StylusButtonInputEventTest कनेक्ट किए गए स्टाइलस के व्यवहार को एम्युलेट करता है. साथ ही, यह टेस्ट करता है कि बटन के इवेंट की रिपोर्ट सही तरीके से की गई है या नहीं. हमारा सुझाव है कि पुराने वर्शन के लिए, स्टाइलस ऐक्सेसरी या एम्युलेटर बनाएं, जो स्टाइलस के इवेंट को सिम्युलेट कर सके.
स्टाइलस ऐक्सेसरी बनाने वाली कंपनियों के लिए दिशा-निर्देश
स्टाइलस डिवाइस पर काम करने की सुविधा लागू करने के लिए, डिवाइस बनाने वाली कंपनियों को नीचे दिखाया गया स्टाइलस ह्यूमन इंटरफ़ेस डिवाइस (एचआईडी) डिस्क्रिप्टर इस्तेमाल करना होगा. इससे यह पता चलता है कि स्टाइलस डेटा (प्रेशर सेंसिटिविटी, इरेज़र, बटन, डिवाइस आईडी, बैटरी लेवल, चार्जिंग की स्थिति वगैरह) को कैसे दिखाया जाता है. स्टाइलस डिवाइस, एचआईडी की जानकारी Android मोबाइल डिवाइस को भेजता है,
इससे प्लैटफ़ॉर्म, एचआईडी डेटा को टचस्क्रीन से मिले टच डेटा के साथ कोरिलेट कर पाता है
और
MotionEvent
क्लास का इस्तेमाल करके, स्टाइलस के इवेंट जनरेट कर पाता है. Android 14 और इसके बाद के वर्शन में, स्टाइलस पर बटन दबाने पर,
इंटरनल इवेंट भी जनरेट होते हैं, जिसमें
KeyEvent क्लास का इस्तेमाल किया जाता है.
ब्लूटूथ (बीटी), ब्लूटूथ लो एनर्जी (बीटीएलई) या यूएसबी के ज़रिए डेटा भेजा जा सकता है.
एचआईडी डिस्क्रिप्टर का उदाहरण
यहां दिए गए एचआईडी डिस्क्रिप्टर के सैंपल में, टिप कॉन्टैक्ट, प्रेशर, प्राइमरी और सेकंडरी बटन, इरेज़र, और सीरियल नंबर की जानकारी दी गई है. आपके शामिल किए गए एचआईडी डिस्क्रिप्टर में, ब्लूटूथ के ज़रिए स्टाइलस से रिपोर्ट की जा रही जानकारी सटीक तरीके से दिखनी चाहिए. यह जानकारी, उपलब्ध क्षमताओं का कोई सबसेट हो सकती है.
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 डेवलपर का दस्तावेज़.