यूएसबी हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) एपीआई के साथ काम करने के लिए, डिवाइस बनाने वाली कंपनियों को उससे जुड़ा यूएसबी एचएएल वर्शन लागू करना होगा. USB HAL API का इस्तेमाल करने के लिए, सिस्टम-प्रिविलेज वाले ऐप्लिकेशन की ज़रूरत होती है.
यूएसबी एचएएल, यूएसबी पोर्ट रीसेट एपीआई के साथ काम करता है. इसके लिए, यूएसबी एचएएल v2.0 की ज़रूरत होती है. यह एपीआई, Android 13 और इसके बाद के वर्शन वाले डिवाइसों के लिए उपलब्ध है. कनेक्ट किए गए होस्ट के साथ यूएसबी कनेक्शन को रीसेट करने के लिए, इस एपीआई का इस्तेमाल करें.
यूएसबी एचएएल और उसके एपीआई ढूंढना
एपीआई के साथ काम करने के लिए, डिवाइस बनाने वाली कंपनियों को यूएसबी एचएएल लागू करना होगा.
USB HAL के डिफ़ॉल्ट तौर पर लागू होने की जानकारी पाने के लिए, इन पाथ का इस्तेमाल करें:
Version AIDL (नया वर्शन):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
हार्डवेयर इंटरफ़ेस हेडर फ़ाइल ढूंढने के लिए, इस पाथ का इस्तेमाल करें:
Version AIDL (नया वर्शन):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
एपीआई ढूंढने के लिए, एआईडीएल हेडर फ़ाइल में एपीआई ढूंढने के लिए, यहां दिए गए पाथ का इस्तेमाल करें. यह पाथ, एपीआई के लिए Android फ़्रेमवर्क का एंट्री पॉइंट भी है:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
यूएसबी एचएएल लागू करना
USB HAL API के साथ काम करने के लिए, ये लागू करें:
यूएसबी एचएएल का सही वर्शन. सिस्टम यूज़र इंटरफ़ेस लागू करने की ज़रूरत नहीं है.
टारगेट डिवाइस और होस्ट के बीच यूएसबी कनेक्शन को रीसेट करके, यूएसबी पोर्ट रीसेट एपीआई के लिए यूएसबी एआईडीएल एचएएल.
USB HAL API के आर्किटेक्चर को समझना
USB HAL API, android.hardware.usb
पैकेज में पहले से मौजूद होता है. यह डिवाइस के साथ इंटरैक्ट करने के लिए, USB HAL का इस्तेमाल करता है. एपीआई के आर्किटेक्चर के बारे में जानकारी, नीचे दिए गए इलस्ट्रेशन में दी गई है.
यूएसबी पोर्ट रीसेट करने वाला एपीआई
इस इलस्ट्रेशन में, किसी फ़्रेमवर्क में USB Port Reset API के कोड फ़्लो को दिखाया गया है. इसमें USB HAL को लागू करने की जानकारी भी शामिल है.
पहली इमेज: यूएसबी पोर्ट रीसेट करने वाले एपीआई कोड के फ़्लो का सैंपल.
लागू करने की पुष्टि करना
हर यूएसबी एचएएल वर्शन और उससे जुड़े एपीआई, वेंडर टेस्ट सुइट (वीटीएस) में मौजूद किसी टेस्ट केस से जुड़े होते हैं.
यूएसबी पोर्ट रीसेट करने वाला एपीआई
यूएसबी पोर्ट रीसेट एपीआई के लिए, वीटीएस टेस्ट केस ढूंढने के लिए यहां जाएं:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
USB HAL v1.2 के लिए VTS टेस्ट केस, होस्ट-साइड टेस्ट केस है. इसका इस्तेमाल इन कार्रवाइयों को करने के लिए किया जा सकता है.
यूएसबी पोर्ट रीसेट एपीआई को चालू करने के लिए,
adb shell
कमांड (#svc usb resetUsbPort
) का इस्तेमाल करें.पुष्टि करें कि जांचा जा रहा डिवाइस (DUT) डिसकनेक्ट और फिर से कनेक्ट हो सकता है.