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 HAL v2.0 gerektiren USB Bağlantı Noktası Sıfırlama API'sini destekler ve Android 13 ve sonraki sürümleri çalıştıran cihazlarda kullanılabilir. Bağlı ana makineyle olan USB bağlantısını sıfırlamak için bu API'yi kullanın.
USB HAL'i ve API'lerini bulma
Cihaz üreticileri, API'leri desteklemek için USB HAL'i uygulamalıdır.
USB HAL'in varsayılan uygulamasını bulmak için aşağıdaki yolları kullanın:
AIDL sürümü (en son):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Donanım arayüzü başlık dosyasını bulmak için aşağıdaki yolu kullanın:
Version AIDL (latest):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
API'leri bulmak için AIDL başlık dosyası altında aşağıdaki yolu kullanın. Bu yol, API'nin Android Framework giriş noktasıdır:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
USB HAL'yi uygulama
USB HAL API ile çalışmak için şunları 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 Port Reset API
Aşağıdaki şekilde, USB HAL'nin uygulanması da dahil olmak üzere USB Bağlantı Noktası Sıfırlama API'sinin bir çerçeve içindeki kod akışı gösterilmektedir.
Şekil 1.1 Örnek USB Bağlantı Noktası Reseat API kod akışı.
Uygulamanızı doğrulama
Her USB HAL sürümü ve ilgili API, Satıcı Testi Paketi'ndeki (VTS) bir test senaryosuyla ilişkilendirilir.
USB Port Reset API
USB Port Reset API için VTS test durumunu bulmak üzere şu adrese gidin:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
USB HAL v1.2 için VTS test senaryosu, bu işlemleri gerçekleştirmek üzere kullanabileceğiniz ana makine tarafı bir test senaryosudur.
USB Port Reset API'yi ç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ğlanabileceğini onaylayın.