Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Escribir datos en USB HID usando Javascript, HTML5 o cualquier lenguaje de plataforma cruzada (compatible con Android)

He escrito una interfaz de usuario en HTML5 y JavaScript. Elegí esta implementación para compartir el mismo código entre Android Chrome y Windows 8 RT.

Ahora, mi siguiente objetivo es escribir datos en un USB HID. El dispositivo con el que estoy comunicando es tratado como un HID. Estoy mencionando esta parte en caso de que hay una manera de escribir en un dispositivo HID en lugar de un dispositivo USB RAW.

  • Compartir aplicación "vínculo" en Android
  • Aceleración del ciclo de vida de las aplicaciones de Android
  • Get String de EditText
  • Cómo declarar variables globales en Android?
  • La pantalla parpadea cuando se utiliza una vista web con flash
  • Cambiar Icono Del Cajón De Navegación
  • He hecho muchas investigaciones al respecto. Pero, las especificaciones HTML5 están cambiando tan a menudo que tal vez me perdí algo.

    De todos modos, ¿alguien puede sugerir un lenguaje o implementación que pueda utilizar para compartir código común para acceder a un dispositivo USB en Android y Windows 8 RT? Si no hay una forma de compartir entre los dos, ¿qué tal una sugerencia para obtener la comunicación USB sólo en Android?


    A continuación se muestra mi investigación junto con las conclusiones:

    • Silverlight: NO SOPORTADO. En términos de plugin web, no es compatible con Windows 8 RT o Android

    • Flash: Posible opción. Soportado en ambos sistemas operativos, aunque eliminaron el soporte para Android con el lanzamiento de Jelly Bean

    • HTML5: NO SUSPENDIDO

      • Mirado a la API de GamePad, pero parece apoyar solamente la lectura de un gamepad
      • Observó Etiqueta de dispositivo, pero esta etiqueta ya no existe en el borrador actual. He leído que el "navegador" objeto lo sustituye en Javascript, pero parece completamente diferente. Además, el dispositivo sólo tiene como objetivo la adquisición de vídeo y audio
    • JavaScript: NO SUSPENDIDO. Desde mi entendimiento, esto es porque sería un riesgo de seguridad.

    • Aplicación empaquetada de Chrome: UNSUPPORTED. No está seguro sobre el soporte en Windows 8 RT. Pero, no es compatible con Android Chrome, tampoco.

      • Existe una API USB que logra exactamente lo que necesito, pero la API solo está disponible para una aplicación empaquetada
    • Java Applet: UNSUPPORTED. No está seguro sobre el soporte en Windows 8 RT. Pero, no es compatible con Android Chrome, tampoco.

      • Muchos recursos disponibles sobre cómo comunicarse con dispositivos USB. Sin embargo, dado que los applets java no son compatibles con smartphones, esto no es compatible.
    • Un par de puestos útiles

      • Cómo enviar y recibir datos a puerto serie o puerto USB en asp.net?
      • ¿Es posible acceder al USB desde la aplicación web para cruzar los navegadores cruzados?
      • ¿Es posible proporcionar javascript API para controlar USB, LPT, dispositivos COM?

  • OnTouchListener no funciona
  • Tema de pantalla completa para AppCompat
  • ¿Cómo puedo comprobar si una vista es visible o no en Android?
  • ¿Se está destruyendo la actividad porque la orientación ha cambiado o porque la aplicación se está cerrando?
  • Android: ejecuta un método periódicamente mediante la llamada postDelayed ()
  • Android: comando no encontrado
  • 5 Solutions collect form web for “Escribir datos en USB HID usando Javascript, HTML5 o cualquier lenguaje de plataforma cruzada (compatible con Android)”

    Realmente he pensado en cómo hacer cosas similares a esta ….

    Aquí está es una manera segura de hacerlo si tiene control sobre la computadora que tiene el dispositivo USB conectado:

    Haga que la computadora con el dispositivo USB ejecute un servidor web como apache / php. Haga que sólo escuche localhost.

    A continuación, en la página html que se está viendo, ejecute una publicación ajax en localhost / somescript.php (o cgi o cfm o lo que sea).

    En php / cgi script se comunica con el dispositivo USB y luego devuelve una cadena json al navegador diciendo que algo sucedió.


    ACTUALIZAR:


    Otro enfoque consiste en utilizar protocolos de URL personalizados. Crea un ejecutable y "lo instala" en el equipo cliente junto con su protocolo de url personalizado.

    A continuación, puede invocar el archivo ejecutable desde el navegador mediante su protocolo de url personalizado.

    Hay una alternativa más Web Socket.Create un servidor de socket web que tendrá acceso al dispositivo usb en el sistema local.

    Conecte su servidor web utilizando Web Socket de Web Application.Web Socket tiene estándar Api

    Puedes hacer algo como esto

    var host = "wss://localhost:25000/test"; Websokcet ws = new WebSocket(host); 

    Puede crear su servidor web sokcet utilizando RFC 6455

    Para el navegador más antiguo que se puede pensar en el servidor http también.

    Por favor, eche un vistazo a JSFS. Funciona de manera similar al enfoque de Chris_vr y ya es una solución de trabajo.

    https://github.com/jsfsproject/jsfs . Es gratis y tiene licencia bajo GPL.

    Si el dispositivo USB que desea controlar es una impresora de código de barras, puede utilizar jZebra

    https://code.google.com/p/jzebra/

    Este es un applet que se comunica directamente con las impresoras conectadas localmente.

    ¿Qué tal esto?

    Escribir en un puerto serie:

     var writeSerial=function(str) { chrome.serial.write(connectionId, str2ab(str), onWrite); } // Convert string to ArrayBuffer var str2ab=function(str) { var buf=new ArrayBuffer(str.length); var bufView=new Uint8Array(buf); for (var i=0; i<str.length; i++) { bufView[i]=str.charCodeAt(i); } return buf; } 

    Más en http://developer.chrome.com/apps/app_hardware.html

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.