2012-07-05 24 views
9

Estoy tratando de manejar el valor de un escáner de código de barras USB a través de mi tableta Android 3.2, el escáner funciona con éxito en el sistema operativo pero quiero obtener el valor en el programa sin un texto de edición. El host y el accesorio usbmanager no lo enlistaron con los dispositivos conectados a través de USB.Manejar el valor del escáner de código de barras a través del dispositivo Android

+0

¿Qué escáner de código de barras está utilizando? También estoy trabajando en el mismo tipo de proyecto. Será útil para mí. –

Respuesta

5

la mayoría de los escáneres de código de barras enchufables (que he visto) están hechos como dispositivos de perfil HID así que cualquiera que sea que estén enchufados debería verlos básicamente como un teclado. Creo que esta es la razón por la que no aparecen en la lista de accesorios de la API de host USB. Usted debe ser capaz de obtener la entrada bruta de ellas la misma forma que lo haría un teclado dentro de su actividad por razones imperiosas de Activity.onKeyDown(int keycode, KeyEvent ke)

Algo como esto en su actividad:

@Override 
protected boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.i("TAG", ""+ keyCode); 
    //I think you'll have to manually check for the digits and do what you want with them. 
    //Perhaps store them in a String until an Enter event comes in (barcode scanners i've used can be configured to send an enter keystroke after the code) 
    return true; 
} 
+0

¡¡¡gracias !! funciona muy bien !! –

+0

@BlackBird_K ¿Alguna placa Arduino se usa como intermediario para la comunicación? –

+0

Intenté esto y funcionó, pero tuve que presionar un botón en el escáner de código de barras. ¿Puedo hacerlo programáticamente, entonces el usuario no necesita presionar. ¿Detecta y escanea automáticamente? –

2

obtendrá el resultado en caso de actividad keydown .

por ejemplo: -

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    char pressedKey = (char) event.getUnicodeChar(); 
    Barcode += "" + pressedKey; 
    Toast.makeText(getApplicationContext(), "barcode--->>>" + Barcode, 1) 
      .show(); 
    return true; 
} 

Espero que este post te ayudará.

0

También tuve el mismo problema, pero cuando usaba onKeyDown o onKeyUp, no se llamaba cada vez que me refería a cada carácter para el código de barras. Usé DiapatchKeyEvent, y funcionó bien.

+0

Tal vez debería considerar dar un ejemplo? –

Cuestiones relacionadas