Bonjour,

Il y a quelques temps, j'ai travaillé sur un projet où il était nécessaire de recevoir et d'envoyer des données à un périphérique HID sous Linux. Pour ce faire j'ai utilisé la bibliothèque hidapi et n'ai pas eu de soucis à réaliser ce que je voulais.
Je veux maintenant pouvoir porté ce projet sur Android. Le problème est qu'il semble bien plus compliqué de communiquer avec un périphérique HID sous android. (La librairie hidapi n'existe pas sous android).
J'ai donc tout d'abord regardé du côté de USB Host. Le problème est que mon périphérique étant composé d'une interface "souris" et une "clavier", il n'est pas listé. J'ai bien essayer de modifier les permissions, il semble que comme android utilise ce périphérique (comme souris et clavier), il ne le met pas disponible dans "getDeviceList()".
J'ai également regardé du côté de USB Accessory (et AOA2) mais, de ce que j'ai compris, il faut pour cela modifier le périphérique USB. Pourtant il semble bien que ça soit la bonne direction. Dans l'idée, il faudrait récupérer un "UsbDevice" puis "UsbDeviceConnection" afin de pouvoir communiquer via "bulkTransfert" et "controlTransfert".

J'ai testé plusieurs applications Android existante pour voir comment était visible mon périphérique
  • USB Device Info où je vois pas mon périphérique sous l'onglet Android mais il est bien présent dans les devices Linux
  • USB HID Terminal qui n'affiche pas mon device (mais qui affiche bien une clé USB ou une webcam)
  • ...


En ce qui concerne mon périphérique,
  • il est bien reconnu lorsque je le branche
  • je peux utiliser la souris et le clavier (de ce périphérique) sur l'interface Android
  • au branchement, j'ai bien de nouveaux fichiers dans /dev/input et dans /dev/bus/usb/001 et j'ai dans dmesg
    input: XXX USB HID SENSORS as /devices/pci0000:00/0000:00:10.1/usb8/8-1/8-1:1.0/input/input29
    hid-generic 0003:2804:0100.0014: input,hidraw3: USB HID v1.10 Keyboard [XXX USB HID SENSORS] on usb-0000:00:10.1-1/input0
    input: XXX USB HID SENSORS as > /devices/pci0000:00/0000:00:10.1/usb8/8-1/8-1:1.1/input/input30
    hid-generic 0003:2804:0100.0015: input,hidraw4: USB HID v1.10 Device [XXX USB HID SENSORS] on usb-0000:00:10.1-1/input1
    hid-generic 0003:2804:0100.0016: hiddev0,hidraw5: USB HID v1.10 Device [XXX USB HID SENSORS] on usb-0000:00:10.1-1/input2
    input: XXX USB HID SENSORS as /devices/pci0000:00/0000:00:10.1/usb8/8-1/8-1:1.3/input/input31
    hid-generic 0003:2804:0100.0017: input,hidraw6: USB HID v1.10 Mouse [XXX USB HID SENSORS] on usb-0000:00:10.1-1/input3
    hid-generic 0003:2804:0100.0018: hiddev0,hidraw7: USB HID v1.10 Device [XXX USB HID SENSORS] on usb-0000:00:10.1-1/input4



Dernière précisions (en espérant ne rien oublier), mon device Android est sous Android 4.2.2 (API 17)

Avez-vous une idée de ce que je pourrais faire pour communiquer avec mon device ?
Merci d'avance pour votre aide



Hélène