اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
واجهة برمجة التطبيقات USB Port Reset API
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
لاستخدام واجهة برمجة التطبيقات 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 لتتوافق مع واجهات برمجة التطبيقات.
للعثور على التنفيذ التلقائي لواجهة 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 وواجهة برمجة التطبيقات المقابلة له بحالة اختبار في
مجموعة اختبارات المورّد (VTS).
واجهة برمجة التطبيقات USB Port Reset API
للعثور على حالة اختبار VTS لواجهة برمجة التطبيقات USB Port Reset API، انتقِل إلى:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
اختبار VTS لإصدار USB HAL 1.2 هو اختبار من جهة المضيف يمكنك استخدامه للقيام بهذه الإجراءات.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# USB Port Reset API\n\nTo support the USB Hardware Abstraction Layer (HAL) API, device manufacturers\nmust implement the corresponding USB HAL version. To use the USB HAL API, a\nsystem-privileged app is required.\n\nThe USB HAL supports the USB Port Reset API, which requires USB HAL v2.0 and is\navailable for devices running Android 13 and higher. Use this API to reset the\nUSB connection with the connected host.\n\nFind the USB HAL and its APIs\n-----------------------------\n\nDevice manufacturers must implement the USB HAL to support the APIs.\n\n1. To find the default implementation of USB HAL, use the following paths:\n\n **Version AIDL (latest):**\n [`\u003caosp\u003e/hardware/interfaces/usb/gadget/1.2/default/`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/usb/gadget/1.2/default/)\n2. To find the hardware interface header file, use the following path:\n\n **Version AIDL (latest):**\n [`\u003caosp\u003e/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/usb/gadget/1.2/IUsbGadget.hal)\n3. To find the APIs, use the following path to locate the APIs under the\n AIDL header file. This path is also the Android Framework entry point for the API:\n\n `android.hardware.usb`:\n [`\u003caosp\u003e/core/java/android/hardware/usb`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/hardware/usb/IUsbManager.aidl)\n\nImplement the USB HAL\n---------------------\n\nTo work with the USB HAL API, implement the:\n\n1. Correct USB HAL version. No system UI implementation is required.\n\n2. USB AIDL HAL for the USB Port Reset API by resetting the USB connection between the target device and the host.\n\nUnderstand the USB HAL API architecture\n---------------------------------------\n\nThe USB HAL API is built into the `android.hardware.usb` package and leverages the USB HAL to interact with the device. Details about the architecture for the API is provided in the figure below.\n\n### USB Port Reset API\n\nThe following figure illustrates the code flow of the USB Port Reset API in a framework, including the implementation of the USB HAL.\n\n**Figure 1.1** Sample USB Port Reseat API code flow.\n\nValidate your implementation\n----------------------------\n\nEach USB HAL version and its corresponding API is associated with a test case in\nthe Vendor Test Suite (VTS).\n\n### USB Port Reset API\n\nTo find the VTS test case for the USB Port Reset API, go to:\n\n[`\u003caosp\u003e/test/vts-testcase/hal/usb/gadget/V1_2/`](https://android.googlesource.com/platform/test/vts-testcase/hal/+/refs/heads/android16-release/usb/gadget/V1_2)\n\nThe VTS test case for USB HAL v1.2 is a host-side test case you can use to\nperform these actions.\n\n- To invoke the USB Port Reset API, use the `adb shell`\n command (`#svc usb resetUsbPort`).\n\n- Confirm that the device under test (DUT) can disconnect and reconnect."]]