ইউএসবি হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) এপিআই সমর্থন করার জন্য, ডিভাইস নির্মাতাদের অবশ্যই সংশ্লিষ্ট ইউএসবি HAL সংস্করণটি বাস্তবায়ন করতে হবে। ইউএসবি HAL এপিআই ব্যবহার করার জন্য একটি সিস্টেম-সুবিধাপ্রাপ্ত অ্যাপ প্রয়োজন।
ইউএসবি এইচএএল (USB HAL) ইউএসবি পোর্ট রিসেট এপিআই (USB Port Reset API) সমর্থন করে, যার জন্য ইউএসবি এইচএএল ভি২.০ (USB HAL v2.0) প্রয়োজন এবং এটি অ্যান্ড্রয়েড ১৩ ও তার পরবর্তী সংস্করণের ডিভাইসগুলোতে উপলব্ধ। সংযুক্ত হোস্টের সাথে ইউএসবি সংযোগ রিসেট করতে এই এপিআই ব্যবহার করুন।
USB HAL এবং এর API গুলি খুঁজুন
এপিআইগুলো সমর্থন করার জন্য ডিভাইস প্রস্তুতকারকদের অবশ্যই ইউএসবি এইচএএল বাস্তবায়ন করতে হবে।
USB HAL-এর ডিফল্ট বাস্তবায়ন খুঁজে পেতে, নিম্নলিখিত পাথগুলো ব্যবহার করুন:
AIDL সংস্করণ (সর্বশেষ):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/হার্ডওয়্যার ইন্টারফেস হেডার ফাইলটি খুঁজে পেতে নিম্নলিখিত পাথটি ব্যবহার করুন:
AIDL সংস্করণ (সর্বশেষ):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.halএপিআইগুলো খুঁজে পেতে, AIDL হেডার ফাইলের অধীনে এপিআইগুলো সনাক্ত করার জন্য নিম্নলিখিত পাথটি ব্যবহার করুন। এই পাথটিই এপিআই-এর জন্য অ্যান্ড্রয়েড ফ্রেমওয়ার্ক এন্ট্রি পয়েন্ট:
android.hardware.usb:<aosp>/core/java/android/hardware/usb
ইউএসবি এইচএএল বাস্তবায়ন করুন
USB HAL API-এর সাথে কাজ করার জন্য, নিম্নলিখিতগুলি বাস্তবায়ন করুন:
সঠিক USB HAL সংস্করণ। কোনো সিস্টেম UI বাস্তবায়নের প্রয়োজন নেই।
টার্গেট ডিভাইস এবং হোস্টের মধ্যেকার ইউএসবি সংযোগ রিসেট করার মাধ্যমে ইউএসবি পোর্ট রিসেট এপিআই-এর জন্য ইউএসবি এআইডিএল এইচএএল।
USB HAL API আর্কিটেকচার বুঝুন
ইউএসবি এইচএএল এপিআইটি android.hardware.usb প্যাকেজের মধ্যে অন্তর্নির্মিত এবং এটি ডিভাইসের সাথে যোগাযোগের জন্য ইউএসবি এইচএএল ব্যবহার করে। এপিআইটির স্থাপত্য সম্পর্কে বিস্তারিত তথ্য নিচের চিত্রে দেওয়া হয়েছে।
ইউএসবি পোর্ট রিসেট এপিআই
নিম্নোক্ত চিত্রে একটি ফ্রেমওয়ার্কের মধ্যে ইউএসবি পোর্ট রিসেট এপিআই-এর কোড প্রবাহ দেখানো হয়েছে, যার মধ্যে ইউএসবি এইচএএল-এর বাস্তবায়নও অন্তর্ভুক্ত রয়েছে।

চিত্র ১.১ ইউএসবি পোর্ট রিসেট এপিআই কোড প্রবাহের নমুনা।
আপনার বাস্তবায়ন যাচাই করুন
প্রতিটি USB HAL সংস্করণ এবং এর সংশ্লিষ্ট API, ভেন্ডর টেস্ট স্যুট (VTS)-এর একটি টেস্ট কেসের সাথে যুক্ত থাকে।
ইউএসবি পোর্ট রিসেট এপিআই
USB পোর্ট রিসেট API-এর VTS টেস্ট কেসটি খুঁজে পেতে, এখানে যান:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
USB HAL v1.2-এর জন্য VTS টেস্ট কেসটি একটি হোস্ট-সাইড টেস্ট কেস, যা আপনি এই কাজগুলো সম্পাদন করতে ব্যবহার করতে পারেন।
ইউএসবি পোর্ট রিসেট এপিআই চালু করতে,
adb shellকমান্ড (#svc usb resetUsbPort) ব্যবহার করুন।পরীক্ষাধীন ডিভাইসটি (DUT) সংযোগ বিচ্ছিন্ন এবং পুনরায় সংযোগ স্থাপন করতে পারে কিনা তা নিশ্চিত করুন।