USB Donanım Soyutlama Katmanı (HAL) API'sini desteklemek için cihaz üreticilerinin ilgili USB HAL sürümünü uygulaması gerekir. USB HAL API'yi kullanmak için sistem ayrıcalıklı bir uygulama gerekir.
USB HAL, USB bağlantı noktası sıfırlama API'sini destekler. Bu API, USB HAL v2.0'ı gerektirir ve Android 13 ile sonraki sürümleri çalıştıran cihazlarda kullanılabilir. Bu API'yi kullanarak bağlı ana makineyle USB bağlantısını sıfırlayın.
USB HAL'yi ve API'lerini bulma
Cihaz üreticileri, API'leri desteklemek için USB HAL'yi uygulamalıdır.
USB HAL'nin varsayılan uygulamasını bulmak için aşağıdaki yolları kullanın:
Version AIDL (en son):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Donanım arayüzü üstbilgi dosyasını bulmak için aşağıdaki yolu kullanın:
Version AIDL (en son):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
API'leri bulmak için AIDL üstbilgi dosyasındaki API'leri bulmak üzere aşağıdaki yolu kullanın. Bu yol, API için Android Framework giriş noktasıdır:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
USB HAL'sini uygulama
USB HAL API ile çalışmak için aşağıdakileri uygulayın:
Doğru USB HAL sürümü. Sistem kullanıcı arayüzü uygulaması gerekmez.
Hedef cihaz ile ana makine arasındaki USB bağlantısını sıfırlayarak USB bağlantı noktası sıfırlama API'si için USB AIDL HAL.
USB HAL API mimarisini anlama
USB HAL API, android.hardware.usb
paketine yerleştirilmiştir ve cihazla etkileşim kurmak için USB HAL'den yararlanır. API'nin mimarisiyle ilgili ayrıntılar aşağıdaki şekilde verilmiştir.
USB Bağlantı Noktası Sıfırlama API'si
Aşağıdaki şekilde, USB HAL'nin uygulanması da dahil olmak üzere bir çerçevedeki USB Port Reset API'nin kod akışı gösterilmektedir.
Şekil 1.1 Örnek USB bağlantı noktası yeniden takma API kodu akışı.
Uygulamanızı doğrulama
Her USB HAL sürümü ve ilgili API'si, Vendor Test Suite'teki (VTS) bir test durumuyla ilişkilendirilir.
USB Bağlantı Noktası Sıfırlama API'si
USB bağlantı noktası sıfırlama API'si için VTS test senaryosunu bulmak üzere şu adrese gidin:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
USB HAL v1.2 için VTS test durumu, bu işlemleri gerçekleştirmek üzere kullanabileceğiniz ana taraf test durumudur.
USB bağlantı noktası sıfırlama API'sini çağırmak için
adb shell
komutunu (#svc usb resetUsbPort
) kullanın.Test edilen cihazın (DUT) bağlantısının kesilip yeniden bağlanabildiğini onaylayın.