برای پشتیبانی از رابط برنامهنویسی کاربردی لایه انتزاعی سختافزار USB (HAL)، تولیدکنندگان دستگاه باید نسخه USB HAL مربوطه را پیادهسازی کنند. برای استفاده از رابط برنامهنویسی کاربردی USB HAL، یک برنامه با دسترسی سیستمی مورد نیاز است.
USB HAL از رابط برنامهنویسی کاربردی (API) تنظیم مجدد پورت USB پشتیبانی میکند که به USB HAL نسخه ۲.۰ نیاز دارد و برای دستگاههای دارای اندروید ۱۳ و بالاتر در دسترس است. از این 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، موارد زیر را پیادهسازی کنید:
نسخه صحیح USB HAL. هیچ پیادهسازی رابط کاربری سیستمی لازم نیست.
USB AIDL HAL برای رابط برنامهنویسی کاربردی تنظیم مجدد پورت USB با تنظیم مجدد اتصال USB بین دستگاه هدف و میزبان.
معماری رابط برنامهنویسی کاربردی USB HAL را درک کنید
رابط برنامهنویسی کاربردی USB HAL در بسته android.hardware.usb تعبیه شده است و از USB HAL برای تعامل با دستگاه استفاده میکند. جزئیات مربوط به معماری این رابط برنامهنویسی کاربردی در شکل زیر ارائه شده است.
رابط برنامهنویسی بازنشانی پورت USB
شکل زیر جریان کد رابط برنامهنویسی کاربردی تنظیم مجدد پورت USB را در یک چارچوب، شامل پیادهسازی USB HAL، نشان میدهد.

شکل ۱.۱ نمونه کد API برای بازسازی پورت USB.
اعتبارسنجی پیادهسازی شما
هر نسخه USB HAL و API مربوط به آن با یک مورد آزمایشی در مجموعه تست فروشنده (VTS) مرتبط است.
رابط برنامهنویسی بازنشانی پورت USB
برای یافتن مورد آزمایشی VTS برای رابط برنامهنویسی کاربردی تنظیم مجدد پورت USB، به آدرس زیر مراجعه کنید:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
مورد آزمایشی VTS برای USB HAL نسخه ۱.۲ یک مورد آزمایشی سمت میزبان است که میتوانید برای انجام این اقدامات از آن استفاده کنید.
برای فراخوانی API تنظیم مجدد پورت USB، از دستور
adb shell(#svc usb resetUsbPort) استفاده کنید.تأیید کنید که دستگاه تحت آزمایش (DUT) میتواند قطع و وصل شود.