Android USBManager

10 views
Skip to first unread message

Hugo Ferreira

unread,
Jul 17, 2013, 8:22:52 AM7/17/13
to ri...@googlegroups.com
Aproveitando aqui o riapt :)

Alguém já teve experiência com USBManager do Android ?
Estou a falar na troca de dados (comando do Android->USB e resposta em formato de dados USB->Android)

Infelizmente este parece ser um tópico pouco explorado e vê-se pelo número de devices USB OTG disponíveis!


Abs,
Hugo.

andre webb Henriques

unread,
Jul 23, 2013, 5:52:29 AM7/23/13
to ri...@googlegroups.com
Estou interessando em saber fazer a comunicação de Android/Telemoveis para Arduino por USB. Gostaria de saber como programar o telemovel para esse efeito.

João Fernandes

unread,
Jul 23, 2013, 7:02:29 AM7/23/13
to riapt
Existem algumas bibliotecas por ai espalhadas que poderás integrar em projectos Flash/Flex e para tal bastará a integração via ANE. Eu por acaso comecei um projecto que acabei por doar a outro membro da comunidade só que a comunicação era feita via Bluetooth e não USB o que livrava os dispositivos de cablagem. No meu caso, a comunicação era feito com lilypads. O projecto usava uma versão alterada do AS3Glue que para quem já usa Flash com arduino, sente-se em casa. Se estiveres interessado posso tentar entrar em contacto com o tal membro para ver se ele sempre acabou o projecto ou não.


2013/7/23 andre webb Henriques <andrew...@gmail.com>
--
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.
 
Para anular a subscrição deste grupo e parar de receber emails deste grupo, envie um email para riapt+un...@googlegroups.com.
Para publicar uma mensagem neste grupo, envie um e-mail para ri...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/groups/opt_out.
 
 



--

João Fernandes

Hugo Ferreira

unread,
Jul 23, 2013, 8:47:59 AM7/23/13
to ri...@googlegroups.com
Actualmente não precisas de libs externas.

Para Android HOST precisas:
  • Android 3.1 ou superior
  • Device com USB OTG (obvio)
  • Cabo USB OTG
Para Android Slave precisas:
  • Android 2.3.4 através de uma extensão do ADK ou Android 3.1 sem a necessidade da dita extensão
  • Um device capaz de actuar como Host e que implemente o protocolo do Android (devem ser muito raros)
Precisas de usar o USBManager do Android SDK.

Para Host é um pouco complexo o outro nem por isso. Se tiveres o protocolo binário fica tudo muito mais simples.

O Arduino funciona como host, logo podes usar a opção 2.

Talvez pilhas de exemplos na net com Arduino.

João Fernandes

unread,
Jul 23, 2013, 9:13:29 AM7/23/13
to riapt
as libs externas que falava é para gerirem o protocolo do arduino (FIRMATA) sobre um protocolo de transmissão (seja USB/BT/WIFI etc). 

Existe um ANE para USB mas é exclusivamente para windows / mac mas facilmente poderia ser extendido para funcionar em iOS / Android. 


Este também usa uma versão do AS3Glue alterada.


2013/7/23 Hugo Ferreira <hferre...@gmail.com>



--

João Fernandes

Hugo Ferreira

unread,
Jul 23, 2013, 10:14:34 AM7/23/13
to ri...@googlegroups.com
Isso foi desenhado para Windows/Mac, uma vez que o AIR não suporta nativamente.
Para Android tens o USBManager como referi. Essa ANE se fosse suportada para Android muito provavelmente iria por este caminho. Infelizmente o desenvolvimento é ainda complexo e para ser bem construido tens de testar várias coisas (o número de interfaces e end points do device, etc) para ser abrangente.

João, para iOS são outros quinhentos :)

Encontro-me de momento a desenvolver uma ANE para suporte a USB no Android (ainda não existe) para uso próprio. Se existir por favor corrigam-me mas não encontrei.

Estou indeciso se irei disponibilizar esta ANE para o público em geral uma vez que não deverá existir um grande público para isto pelo que comercialmente não valerá a pena.


Abs,
Hugo.

Hugo Ferreira

unread,
Jul 23, 2013, 10:21:24 AM7/23/13
to ri...@googlegroups.com
Atenção, eu estou a falar em devices sem root. Uma coisa é para uso didático, outra é para o público que na sua grande maioria não tem o device com acesso root nem tem de ter/saber.
Com root abres as portas a outro desenvolvimento e podes no limite dar suporte a devices com Android inferior a 3.1 activando OTG nestes.

João Fernandes

unread,
Jul 24, 2013, 5:37:37 AM7/24/13
to riapt
Root nem é para aqui chamado pois podes desenvolver qualquer uma das funcionalidades sem necessitar de fazer root ao dispositivo. A única coisa que precisas será de gerir a ligação à porta USB, eventualmente adicionar suporte para emparelhamento mas o que não é obrigatório, podes muito bem para fins de testes, assumir que o emparelhamento seja feito através do sistema e só precisas depois de implementar o protocolo sobre a ligação existente. No caso do arduino, o protocolo é o firmata.

Tens um exemplo aqui http://shokai.github.io/ArduinoFirmata-Android/ que inclusive ja tem uma lib java para usar usb-serial o que facilita o trabalho. Acho que no teu caso, só terias de implementar o protocolo do teu dispositivo (caso não exista já).

Hugo Ferreira

unread,
Jul 24, 2013, 5:41:42 AM7/24/13
to ri...@googlegroups.com
João,

No caso do Arduino tudo bem, porque mas para outros devices que não são capazes de funcionar como master, tem de ser o Android a fornecer o power e a comandar (USB OTG): http://pt.wikipedia.org/wiki/USB_On-The-Go

Como referi, depende do device e mesmo assim a forma de comunicar também depende caso o device tenha 1 ou 2 interfaces e caso tenho 1 ou 2 endpoints.


Cumprimentos,
Hugo.

No dia 24 de Julho de 2013 às 10:37, João Fernandes <joaopedromar...@gmail.com> escreveu:
Root nem é para aqui chamado pois podes desenvolver qualquer uma das funcionalidades sem necessitar de fazer root ao dispositivo. A única coisa que precisas será de gerir a ligação à porta USB, eventualmente adicionar suporte para emparelhamento mas o que não é obrigatório, podes muito bem para fins de testes, assumir que o emparelhamento seja feito através do sistema e só precisas depois de implementar o protocolo sobre a ligação existente. No caso do arduino, o protocolo é o firmata.

Tens um exemplo aqui http://shokai.github.io/ArduinoFirmata-Android/ que inclusive ja tem uma lib java para usar usb-serial o que facilita o trabalho. Acho que no teu caso, só terias de implementar o protocolo do teu dispositivo (caso não exista já).

--
Reply all
Reply to author
Forward
0 new messages