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