כדי לתמוך ב-USB Hardware Abstraction Layer (HAL) API, יצרני המכשירים חייבים ליישם את גרסת ה-USB HAL המתאימה. כדי להשתמש ב-USB HAL API, נדרשת אפליקציה מוסמכת למערכת.
ה-USB HAL תומך ב-USB Reset API, הדורש USB HAL v2.0 וזמין עבור מכשירים עם אנדרואיד 13 ומעלה. השתמש ב-API זה כדי לאפס את חיבור ה-USB עם המארח המחובר.
מצא את ה-USB HAL ואת ממשקי ה-API שלו
יצרני התקנים חייבים ליישם את ה-USB HAL כדי לתמוך בממשקי ה-API.
כדי למצוא את יישום ברירת המחדל של USB HAL, השתמש בנתיבים הבאים:
גרסת AIDL (האחרונה):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
כדי למצוא את קובץ הכותרת של ממשק החומרה, השתמש בנתיב הבא:
גרסת AIDL (האחרונה):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
כדי למצוא את ממשקי ה-API, השתמש בנתיב הבא כדי לאתר את ממשקי ה-API מתחת לקובץ הכותרת של AIDL. נתיב זה הוא גם נקודת הכניסה של Android Framework עבור ה-API:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
יישם את ה-USB HAL
כדי לעבוד עם ה-USB HAL API, הטמע את:
גרסת USB HAL נכונה. אין צורך ביישום ממשק המשתמש של המערכת.
USB AIDL HAL עבור ה-API לאיפוס יציאת USB על ידי איפוס חיבור ה-USB בין התקן היעד למארח.
הבן את ארכיטקטורת USB HAL API
ה-USB HAL API מובנה בחבילת android.hardware.usb
וממנף את ה-USB HAL לאינטראקציה עם המכשיר. פרטים על הארכיטקטורה של ה-API מסופקים באיור למטה.
API של איפוס יציאת USB
האיור הבא ממחיש את זרימת הקוד של ה-API לאיפוס יציאת USB במסגרת, כולל יישום ה-USB HAL.
איור 1.1 זרימת קוד ה-API של יציאת USB לדוגמא.
אמת את היישום שלך
כל גרסת USB HAL וה-API המתאים לה משויכים למקרה בדיקה בחבילת הבדיקה של הספקים (VTS).
API של איפוס יציאת USB
כדי למצוא את מקרה הבדיקה של VTS עבור ה-API לאיפוס יציאת USB, עבור אל:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
מקרה הבדיקה של VTS עבור USB HAL v1.2 הוא מקרה בדיקה בצד המארח שבו אתה יכול להשתמש כדי לבצע פעולות אלה.
כדי להפעיל את ה-USB Reset API, השתמש בפקודה
adb shell
(#svc usb resetUsbPort
).אשר שהמכשיר הנבדק (DUT) יכול להתנתק ולהתחבר מחדש.