لدعم واجهة برمجة تطبيقات طبقة تجريد أجهزة USB (HAL)، يجب على الشركات المصنعة للأجهزة تنفيذ إصدار USB HAL المطابق. لاستخدام واجهة برمجة تطبيقات USB HAL، يلزم وجود تطبيق خاص بالنظام.
يدعم USB HAL واجهة برمجة تطبيقات USB Port Reset، التي تتطلب USB HAL v2.0 وهي متاحة للأجهزة التي تعمل بنظام Android 13 والإصدارات الأحدث. استخدم واجهة برمجة التطبيقات هذه لإعادة تعيين اتصال USB مع المضيف المتصل.
ابحث عن USB HAL وواجهات برمجة التطبيقات الخاصة به
يجب على الشركات المصنعة للأجهزة تنفيذ USB HAL لدعم واجهات برمجة التطبيقات.
للعثور على التنفيذ الافتراضي لـ USB HAL، استخدم المسارات التالية:
إصدار AIDL (الأحدث):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
للعثور على ملف رأس واجهة الجهاز، استخدم المسار التالي:
إصدار AIDL (الأحدث):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
للعثور على واجهات برمجة التطبيقات، استخدم المسار التالي لتحديد موقع واجهات برمجة التطبيقات ضمن ملف رأس AIDL. هذا المسار هو أيضًا نقطة دخول Android Framework لواجهة برمجة التطبيقات (API):
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
تنفيذ USB HAL
للعمل مع USB HAL API، قم بتنفيذ ما يلي:
إصدار USB HAL الصحيح. لا يلزم تنفيذ واجهة مستخدم النظام.
USB AIDL HAL لـ USB Port Reset API عن طريق إعادة تعيين اتصال USB بين الجهاز المستهدف والمضيف.
فهم بنية USB HAL API
تم دمج USB HAL API في حزمة android.hardware.usb
ويستفيد من USB HAL للتفاعل مع الجهاز. يتم توفير تفاصيل حول بنية واجهة برمجة التطبيقات (API) في الشكل أدناه.
واجهة برمجة تطبيقات إعادة تعيين منفذ USB
يوضح الشكل التالي تدفق التعليمات البرمجية لـ USB Port Reset API في إطار العمل، بما في ذلك تنفيذ USB HAL.
الشكل 1.1 نموذج لتدفق التعليمات البرمجية لواجهة برمجة التطبيقات (API) الخاصة بمنفذ USB.
التحقق من صحة التنفيذ الخاص بك
يرتبط كل إصدار USB HAL وواجهة برمجة التطبيقات (API) المقابلة له بحالة اختبار في Vendor Test Suite (VTS).
واجهة برمجة تطبيقات إعادة تعيين منفذ USB
للعثور على حالة اختبار VTS لـ USB Port Reset API، انتقل إلى:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
حالة اختبار VTS لـ USB HAL v1.2 هي حالة اختبار من جانب المضيف يمكنك استخدامها لتنفيذ هذه الإجراءات.
لاستدعاء واجهة برمجة تطبيقات إعادة تعيين منفذ USB، استخدم الأمر
adb shell
(#svc usb resetUsbPort
).تأكد من أن الجهاز قيد الاختبار (DUT) يمكنه قطع الاتصال وإعادة الاتصال.