Pour prendre en charge l'API USB HAL (Hardware Abstraction Layer), les fabricants d'appareils doivent implémenter la version USB HAL correspondante. Pour utiliser l'API USB HAL, une application disposant de privilèges système est requise.
L'API USB HAL est compatible avec l'API USB Port Reset, qui nécessite USB HAL v2.0 et est disponible pour les appareils équipés d'Android 13 ou version ultérieure. Utilisez cette API pour réinitialiser la connexion USB avec l'hôte connecté.
Rechercher l'API USB HAL et ses API
Les fabricants d'appareils doivent implémenter l'API USB HAL pour prendre en charge les API.
Pour trouver l'implémentation par défaut de l'API USB HAL, utilisez les chemins suivants :
Version AIDL (dernière) :
<aosp>/hardware/interfaces/usb/gadget/1.2/default/Pour trouver le fichier d'en-tête de l'interface matérielle, utilisez le chemin suivant :
Version AIDL (dernière) :
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.halPour trouver les API, utilisez le chemin suivant pour les localiser sous le fichier d'en-tête AIDL. Ce chemin est également le point d'entrée du framework Android pour l'API :
android.hardware.usb:<aosp>/core/java/android/hardware/usb
Implémenter l'API USB HAL
Pour utiliser l'API USB HAL, implémentez les éléments suivants :
La version USB HAL appropriée. Aucune implémentation de l'interface utilisateur du système n'est requise.
L'API USB AIDL HAL pour l'API USB Port Reset en réinitialisant la connexion USB entre l'appareil cible et l'hôte.
Comprendre l'architecture de l'API USB HAL
L'API USB HAL est intégrée au package android.hardware.usb et exploite l'API USB HAL pour interagir avec l'appareil. Vous trouverez des informations sur l'architecture de l'API dans la figure ci-dessous.
API USB Port Reset
La figure suivante illustre le flux de code de l'API USB Port Reset dans un framework, y compris l'implémentation de l'API USB HAL.
Figure 1.1 Exemple de flux de code de l'API USB Port Reseat.
Valider votre implémentation
Chaque version USB HAL et son API correspondante sont associées à un scénario de test dans la Vendor Test Suite (VTS).
API USB Port Reset
Pour trouver le scénario de test VTS pour l'API USB Port Reset, accédez à :
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
Le scénario de test VTS pour USB HAL v1.2 est un scénario de test côté hôte que vous pouvez utiliser pour effectuer ces actions.
Pour appeler l'API USB Port Reset, utilisez la commande
adb shell(#svc usb resetUsbPort).Vérifiez que l'appareil testé peut se déconnecter et se reconnecter.