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