APIs Bluetooth
A continuación voy a listar algunas APIs para manejar dispositivos Bluetooth en sistemas operativos Windows y Linux(Ubuntu). Estas son las APIs que estuve testeando para usar en el software de proximidad que he desarrollado.
|
Avetana |
|
| Plataforma | Java (Windows, Linux) |
| Licencia | 25 euros cada 3 bluetooth dongles |
| Implementa JSR-82 | Si |
|
32feet.net |
|
| Plataforma | .Net (Windows) |
| Licencia | Gratuita |
| Implementa JSR-82 | No |
|
Electric Blue |
|
| Plataforma | Java (Windows) |
| Licencia | 15 dolares por cada dispositivo bluetooth |
| Implementa JSR-82 | Si |
|
Rococo |
|
| Plataforma | Java (Windows, Linux) |
| Licencia | 2500 euros por cada desarrollador |
| Implementa JSR-82 | No |
|
BlueZSpammer |
|
| Plataforma | C++ (Linux) |
| Licencia | GNU |
| Implementa JSR-82 | No |
|
BlueCove |
|
| Plataforma | Java (Windows, Linux, Mac) |
| Licencia | GNU |
| Implementa JSR-82 | Si |
|
|
|
Finalmente seleccione Avetana por que corre sobre Linux y Windows e implementa la especificación JSR-82 de la cual hay mucha documentación en la web.
La API 32feet.net no implementa la especificación JSR-82 pero de todas formas es muy facil de usar. El problema que encontre no es en la API, sino en Windows, ya que como es conocido por cada Bluetooth dongle se puede conectar hasta 7 dispositivos esclavos y si uno necesita conectar mas dispositivos en forma concurrente puede apelar a conectar otro Bluetooth dongle. El inconveniente de esto es que con Windows solo se puede conectar solamente un dongle y si uno conecta dos o mas solo detecta uno. En cambio Linux puede manejar N dongles. Por lo que la solución .Net/Windows no satisfacia mis necesidades.
Encontre la API de la gente de BlueCove tarde, ya habiendo seleccionado la API de Avetana. Recientemente hice pruebas con esta API y me dieron buenos resultados, por lo que es una opción recomendable tambien. Corre sobre Windows, Linux y Mac a implementa la especificación JSR-82.








Hola tengo una duda , e estado haciendo algunas aplicaciones
CristianHola tengo una duda , e estado haciendo algunas aplicaciones y me interesa saber como utilizar la concurrencia , ya que por ejemplo quiero conectar mas de un dispositivo al mismo tiempo al PC. pero cuando conecto uno el resto de los dispositivos no encuentra la antena porque esta siendo ocupada por un dispositivo…. existe alguna forma de arreglar esto? o simplemente es ocupar mas antenas bluetooth?
ojala me puedas responder al mail , esta muy bueno la pagina
Hola Cristian, Para resolver lo que me comentas tendrias que
adminHola Cristian,
Para resolver lo que me comentas tendrias que usar Threads para poder manejar la concurrencia, ya que sin Threads tu aplicacion se va a quedar bloqueada cada vez que te conectes con un device. En mi caso manejos varios Threads e inclusive tengo distintos procesos encargados de resolver distintos temas y estos a la vez se comunican entre si por colas. Por ejemplo tengo un proceso que solo lo que hace es buscar devcices y una vez que encuentra uno pone la informacion necesaria en una cola para que otro proceso se encargue de determinar que contenido enviar y enviarlo, cada vez que tengo que enviar informacion creo un Thread nuevo que se encarga de manejar la comunicacion con el devices bluetooth.
Para poder darte una respuesta mas precisa necesitaria saber en que tecnologia estas trabajando (Java o .Net) y que protocolo usas para comunicarte con los dispositivos moviles (yo empleo OBEX).
Saludos
Pablo