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