web-dev-qa-db-fra.com

Android, communiquant avec un appareil branché sur le port USB

Je pense à une Android (avec éventuellement un appareil physique qui l'accompagne), et j'essaie de savoir si c'est quelque chose qui est faisable.

1) Disons que je branche mon Android sur mon PC. Serait-il possible pour une application installée sur le PC de communiquer avec une application fonctionnant sur le téléphone portable? J'ai juste besoin d'une donnée très simpliste échange, il peut même être à sens unique (juste des données transmises du téléphone portable à l'application d'écoute sur le PC, chaque fois que le téléphone portable le souhaite, je n'ai pas besoin de données envoyées du PC au téléphone).

Lorsque je le branche, le téléphone me donne 4 options (charge, lecteur de disque, synchronisation HTC, partage de connexion), ce qui me fait penser que ce n'est pas faisable, mais qu'il vaut quand même le coup.

2) Serait-il possible pour une application sur le PC de parler à une application sur le téléphone d'une autre manière? (Wi-fi, bluetooth, etc.). Je suppose que non sur le Wi-Fi car aucune des parties n'a l'IP de l'autre (et je veux que cela fonctionne un peu, sans avoir à saisir les IP manuellement tout le temps).

3) Si je crée un appareil qui est branché sur le petit port USB en bas du téléphone (et disons que c'est un appareil magique qui peut tout faire, je me fiche de ces détails tant qu'il est faisable). Puis-je avoir une application Android App parler à cet appareil?

4) Toutes autres idées pour faire parler le téléphone à un "appareil" que je fabrique ou à une application sur le PC sont plus que bienvenues. Passer "sur le Web" pourrait être une option (même s'il faudrait un serveur central que je possède en tant qu'intermédiaire, je crois). Mais je préfère que la communication soit directe entre les deux appareils.

53
Daniel Magliola

Le monde a changé depuis que cette question a été posée, et la réponse est désormais Android Open Accessory Development Kit . Cela ne résoudra pas le problème des périphériques USB existants, mais il permet de créer de nouveaux périphériques qui peuvent utiliser une connexion USB d'un périphérique Android.

18
James Moore

La communication entre Android Appareil et PC est possible d'une autre manière.

Via une connexion ADB via USB.

  1. Redirection de port.
  2. Serveur Socket Java Program.
  3. Socket client Android App.

Grâce à cette application, vous pouvez communiquer avec notre programme Java exécuté sur PC.

http://www.anothem.net/archives/2010/10/15/Android-usb-connection-to-pc/

9
Noby

Modifier: veuillez noter que cette réponse est antérieure à la disponibilité des API Android USB Host et accessoires) et de la prise en charge de nombreux appareils publiés après leur écriture.

Si vous activez le débogage USB sur le téléphone et que vous avez quelque chose dérivé de l'outil adb du sdk (open source) sur le PC, ils peuvent communiquer. Le PC devra initier des communications mais au cours des sessions, il peut être principalement bidirectionnel ou même principalement d'un appareil à un autre. Voir developer.Android.com à propos du shell adb et de la redirection de port. Racine non requise.

Les gens utilisent le Bluetooth pour parler aux contrôleurs intégrés Arduino.

Avec root, j'ai fait de mon téléphone un hôte USB, mais c'était pénible car j'ai dû utiliser le wifi pour obtenir un shell de débogage depuis que l'USB était occupé.

Certains téléphones ont un port série basse tension sur un connecteur extusb ou des lignes audio, mais un root et un shifter de niveau seraient nécessaires pour l'utiliser.

Une autre idée à laquelle j'avais pensé, faire un modem logiciel sur la prise casque, a apparemment été faite pour les deux Android et iphone par quelqu'un au Japon. Cela ne devrait pas nécessiter de root.

4
Chris Stratton

Pour la communication via usb/wlan, jetez un œil à ce projet: http://code.google.com/p/Android-notifier/

3
WarrenFaith