واجهة برمجة التطبيقات لإعادة ضبط منفذ USB

لاستخدام واجهة برمجة التطبيقات USB Hardware Abstraction Layer (HAL)، على الشركات المصنّعة للأجهزة تنفيذ إصدار USB HAL المقابل. لاستخدام واجهة برمجة التطبيقات USB HAL API، يجب أن يكون لديك تطبيق مفوَّض بالوصول إلى النظام.

يتوافق USB HAL مع واجهة برمجة التطبيقات USB Port Reset API، والتي تتطلّب استخدام الإصدار 2.0 من USB HAL، وهي متوفرة للأجهزة التي تعمل بنظام التشغيل Android 13 والإصدارات الأحدث. استخدِم واجهة برمجة التطبيقات هذه لإعادة ضبط اتصال USB بالمضيف المتصل.

العثور على وحدة HAL الخاصة بمنفذ USB وواجهات برمجة التطبيقات الخاصة بها

على الشركات المصنّعة للأجهزة تنفيذ وحدة HAL الخاصة بمنفذ USB لتتوافق مع واجهات برمجة التطبيقات.

  1. للعثور على التنفيذ التلقائي لواجهة HAL لبروتوكول USB، استخدِم المسارات التالية:

    إصدار AIDL (أحدث إصدار): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. للعثور على ملف رأس واجهة الأجهزة، استخدِم المسار التالي:

    إصدار AIDL (الأحدث): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. للعثور على واجهات برمجة التطبيقات، استخدِم المسار التالي لتحديد موقع واجهات برمجة التطبيقات ضمنملف header.AIDL. هذا المسار هو أيضًا نقطة دخول واجهة برمجة التطبيقات في إطار عمل Android:

    android.hardware.usb: <aosp>/core/java/android/hardware/usb

تنفيذ واجهة برمجة التطبيقات لوحدة التحكّم في الأجهزة (HAL) الخاصة بمنفذ USB

للعمل مع واجهة برمجة التطبيقات USB HAL API، عليك تنفيذ ما يلي:

  1. تصحيح إصدار USB HAL لا يلزم تنفيذ واجهة مستخدم النظام.

  2. 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.

مثال على تسلسل رمز واجهة برمجة التطبيقات لإعادة ضبط منفذ USB

الشكل 1.1: مثال على تدفّق رمز واجهة برمجة التطبيقات لإعادة ضبط منفذ USB

التحقّق من صحة عملية التنفيذ

يرتبط كل إصدار من USB HAL وواجهة برمجة التطبيقات المقابلة له بحالة اختبار في مجموعة اختبارات المورّد (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 Port Reset API، استخدِم الأمر adb shell (#svc usb resetUsbPort).

  • تأكَّد من أنّ الجهاز الذي يتم اختباره (DUT) يمكنه فصل الاتصال وإعادة الاتصال.