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