Android: scansione dei codici a barre, opzioni?Zxing?
-
25-09-2019 - |
Domanda
Voglio creare un'applicazione per Android che sia in grado di scansionare i codici a barre, ottenere le informazioni contenute nel codice a barre e quindi essere in grado di utilizzare tali informazioni in qualche modo.
Non ho idea di come creare uno scanner di codici a barre, quindi sono andato su Google e sembra che Zxing sia il modo più comunemente usato per implementare uno scanner di codici a barre in un'app.
Alcuni link:
http://code.google.com/p/zxing/
http://awalkingcity.com/blog/2008/08/25/qr-codes-made-easy-in-android/
Utilizzo di ZXing per creare un'app per la scansione di codici a barre Android
Tuttavia, gli esempi che ho trovato su zxing prevedevano la necessità di chiedere all'utente di recarsi al mercato e installare lo scanner di codici a barre zxing in modo che la mia app possa quindi chiamare lo scanner di codici a barre quando necessario e lo scanner di codici a barre restituirà quindi le informazioni alla mia app.
Anche se questo sarebbe un buon punto di partenza per me, mi chiedevo: esistono altre opzioni che mi consentirebbero di avere uno scanner di codici a barre incorporato nella mia applicazione senza dover chiedere all'utente di scaricare un'applicazione secondaria?
Soluzione
Developer qui. Penso che si sta andando a voler integrare solo tramite intenti alla fine. È possibile ottenere i miglioramenti, correzioni di bug e soluzioni platform-specifici per libero. E 'molto meno codice troppo. Ma capisco che stai chiedendo un'alternativa.
Probabilmente si vuole spogliarsi Barcode Scanner (la cui sorgente è in / Android nel progetto) e la striscia fuori tutto ciò che non è necessario. Ciò significa che lasciano solo sui pacchetti com.google.zxing.client.android
e com.google.zxing.client.android.camera
. La decodifica nucleo è in DecodeThread
, ma l'altro codice di questi pacchetti implementa la piccola danza callback che fa la scansione continua e ottiene la solita scansione UI.
Se si incorpora il codice è necessario seguire i termini del licenza Apache .
Altri suggerimenti
Scarica ed estendere l'applicazione ZXing "Barcode Scanner" aggiungendo il proprio codice. E 'sotto una licenza Apache 2.0.
Scopri i nuovi servizi di Google Play 7.8 API che include il monitoraggio di codici a barre: https: // sviluppatori. google.com/vision/barcodes-overview
Io suggerirei di usare ZXing attraverso gli intenti e reindirizzamento alla pagina di Android Market ("market://details?id=com.google.zxing.client.android"
) se non è lì (ActivityNotFoundException
cattura). Intenti sono grandi per le comunicazioni inter-app come questo.
Lo faccio funzionare con questo:
repositories { mavenCentral()
maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" }
}
compile 'com.google.zxing:core:3.2.1'
compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'
compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'
Consiglio di utilizzare IntentIntegrator
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.forSupportFragment(this).initiateScan();
Il requestCode ritorna con
IntentIntegrator.REQUEST_CODE
Non è necessario installare uno scanner separato
vi consiglio di scansione del codice a barre uso google. E 'abbastanza reattivo. Si chiama Google Mobile Vision.
L'API Barcode Scanner rileva i codici a barre in tempo reale in qualsiasi orientamento. È inoltre possibile rilevare e analizzare diversi codici a barre in diversi formati allo stesso tempo.
https://developers.google.com/vision/
https://codelabs.developers.google.com/codelabs/ codici a barre / # 0