লেখনী

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

OEM ডিভাইস বাস্তবায়নকারীদের জন্য নির্দেশিকা

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

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

লেখনী আনুষঙ্গিক নির্মাতাদের জন্য নির্দেশিকা

একটি স্টাইলাস ডিভাইসে সমর্থন বাস্তবায়ন করতে, ডিভাইস বাস্তবায়নকারীদের অবশ্যই স্টাইলাস ডেটা (চাপ সংবেদনশীলতা, ইরেজার, বোতাম, ডিভাইস আইডি, ব্যাটারি স্তর, চার্জিং স্থিতি ইত্যাদি) কীভাবে উপস্থাপন করা হয় তা বর্ণনা করতে নীচে দেখানো স্টাইলাস হিউম্যান ইন্টারফেস ডিভাইস (এইচআইডি) বর্ণনাকারী ব্যবহার করতে হবে। . স্টাইলাস ডিভাইসটি Android মোবাইল ডিভাইসে HID তথ্য পাঠায়, MotionEvent ক্লাস ব্যবহার করে স্টাইলাস ইভেন্ট তৈরি করতে টাচস্ক্রিন থেকে স্পর্শ ডেটার সাথে HID ডেটার সম্পর্ক স্থাপন করতে প্ল্যাটফর্মকে সক্ষম করে। অ্যান্ড্রয়েড 14 এবং উচ্চতর সংস্করণে, স্টাইলাসের বোতাম টিপেও KeyEvent ক্লাস ব্যবহার করে অভ্যন্তরীণ ইভেন্ট তৈরি হয়। ব্লুটুথ (BT), ব্লুটুথ লো এনার্জি (BTLE), বা USB-এর মাধ্যমে ডেটা পাঠানো যেতে পারে।

উদাহরণ 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 বিকাশকারী ডকুমেন্টেশন দেখুন।