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