2012-07-05 16 views
9

Sto provando a gestire il valore da un lettore di codici a barre USB tramite il mio tablet Android 3.2, lo scanner funziona correttamente nel sistema operativo ma voglio ottenere il valore nel programma senza un edittext, l'host e l'accessorio usbmanager non l'hanno elencato con i dispositivi collegati via USB.Gestire il valore del lettore di codici a barre tramite dispositivo Android

+0

Quale lettore di codici a barre usi? Sto anche lavorando allo stesso tipo di progetto, sarà utile per me. –

risposta

5

la maggior parte degli scanner di codici a barre plug-in (che ho visto) sono realizzati come dispositivi con profilo HID, quindi qualsiasi cosa siano collegati dovrebbe considerarli fondamentalmente una tastiera. Penso che questo sia il motivo per cui non vengono visualizzati nell'elenco degli accessori dell'host USB. Si dovrebbe essere in grado di ricevere input grezzo da loro allo stesso modo in cui si una tastiera all'interno della vostra attività sovrascrivendo Activity.onKeyDown(int keycode, KeyEvent ke)

Qualcosa di simile nella vostra attività:

@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

grazie !! funziona molto bene !! –

+0

@BlackBird_K Qualche scheda Arduino è utilizzata come middle man per la comunicazione? –

+0

Ho provato questo e ha funzionato, ma ho dovuto premere un pulsante nel barcodescanner. Posso farlo in modo programmatico, quindi l'utente non ha bisogno di premere. Rileva e scansiona automaticamente? –

2

si otterrà il risultato sul evento activity keydown .

Per esempio: -

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

Spero che questo post vi aiuterà.

0

Avevo anche lo stesso problema, ma quando usavo onKeyDown o onKeyUp, non veniva chiamato ogni volta che intendevo per ogni carattere per il codice a barre. Usavo DiapatchKeyEvent e funzionava bene.

+0

Forse dovresti considerare di dare un esempio? –

Problemi correlati