স্টাইলাস

Android 6.0 ও তার পরবর্তী যেকোনও ভার্সন ব্লুটুথ (BT), ব্লুটুথ লো এনার্জি (BTLE) বা USB-এর মাধ্যমে ব্লুটুথ স্টাইলাস কানেকশনের জন্য একটি স্ট্যান্ডার্ড ডেটা ফর্ম্যাট কাজ করে। প্ল্যাটফর্ম টাচ ইনপুট ও স্টাইলাস ডেটার মধ্যে সময়সীমা কোরিলেট করে, তারপর অ্যাক্টিভ অ্যাপে MotionEvents রেন্ডার করার জন্য স্টাইলাস ডেটা প্রদান করে। নিম্নলিখিত বিভাগগুলি OEM ডিভাইস ইমপ্লিমেন্টার, স্টাইলাস অ্যাক্সেসরি ক্রিয়েটর ও স্টাইলাস অ্যাপ ডেভেলপারদের জন্য নির্দেশিকা প্রদান করে।

OEM ডিভাইস ইমপ্লিমেন্টারদের জন্য নির্দেশিকা

ব্লুটুথ স্টাইলাস সাপোর্ট চালু করতে, OEM ডিভাইস ইমপ্লিমেন্টারদের অবশ্যই ব্লুটুথ সাপোর্ট করতে হবে (এবং আরও বেশি মানানসই হওয়ার জন্য BTLE সাপোর্ট করা উচিত)। সাপোর্ট করা স্টাইলাস ইভেন্টের জন্য প্ল্যাটফর্ম ডেটা সংগ্রহ, টাইমিং কোরিলেশন ও অ্যাপে রেন্ডার করা হ্যান্ডেল করে।

14 ও তার পরের যেকোনও ভার্সনে, StylusButtonInputEventTest কানেক্ট করা স্টাইলাসের আচরণ এমুলেট করে এবং বোতাম ইভেন্ট সঠিকভাবে রিপোর্ট করা হয়েছে কিনা তা পরীক্ষা করে। নিম্নলিখিত ভার্সনের ওয়ার্কঅ্যারাউন্ড হিসেবে, আমরা এমন স্টাইলাস অ্যাক্সেসরি বা এমুলেটর তৈরি করার সাজেশন দিই যা স্টাইলাস ইভেন্ট সিমুলেট করতে পারে।

স্টাইলাস অ্যাক্সেসরি ক্রিয়েটরদের জন্য নির্দেশিকা

স্টাইলাস ডিভাইসে সাপোর্ট প্রয়োগ করতে, ডিভাইস প্রয়োগকারীদের অবশ্যই স্টাইলাস হিউম্যান ইন্টারফেস ডিভাইস (HID) ডেসক্রিপ্টর ব্যবহার করতে হবে। এর মাধ্যমে স্টাইলাস ডেটা (প্রেসার সেনসিটিভিটি, ইরেজার, বোতাম, ডিভাইস আইডি, ব্যাটারি লেভেল, চার্জিং স্ট্যাটাস ইত্যাদি) কীভাবে প্রতিনিধিত্ব করা হয় তা বর্ণনা করা হয়। স্টাইলাস ডিভাইস Android মোবাইল ডিভাইসে HID তথ্য পাঠায়, এর ফলে প্ল্যাটফর্মটি টাচস্ক্রিন থেকে পাওয়া টাচ ডেটার সাথে 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 ডেভেলপার ডকুমেন্টেশন দেখুন।