Utiliser ZXing pour créer une application de numérisation de codes à barres android [dupliquer]
cette question a déjà une réponse ici:
j'ai cherché comment ajouter un scanner de code à barres à mon application. Quelqu'un sait d'exemples ou de savoir comment le faire facilement?
7 réponses
le projet ZXing fournit une application autonome de lecteur de codes à barres qui - via le mécanisme d'intention D'Android - peut être appelé par d'autres applications qui souhaitent intégrer le balayage de codes à barres.
la façon la plus facile de faire cela est d'appeler le ZXing SCAN
151920920" de votre application, comme ceci :
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
en appuyant sur le bouton lié à mScan
se lancerait directement dans le code à barres ZXing écran de scanner (ou crash si ZXing n'est pas installé). Une fois qu'un code barre a été reconnu, vous recevrez le résultat dans votre Activity
, ici dans la variable contents
.
pour éviter le plantage et simplifier les choses pour vous, ZXing ont fourni une classe d'utilité que vous pourriez intégrer dans votre application pour rendre l'installation de ZXing plus lisse, en redirigeant l'utilisateur vers le marché Android s'ils ne l'ont pas déjà installé.
enfin, si vous voulez intégrer la numérisation de code à barres directement dans votre application sans compter sur L'installation de L'application ZXing séparée, Eh bien c'est un projet open source et vous pouvez le faire! :)
Edit: Quelqu'un a édité ce guide dans cette réponse (ça sonne un peu bizarre, Je ne peux pas me porter garant de son exactitude, et je ne sais pas pourquoi ils utilisent Eclipse en 2015):
étape par étape pour configurer zxing 3.2.1 dans eclipse
- Télécharger zxing-maître.zip De " https://github.com/zxing/zxing "
- Décompresser zxing-maître.zip, utilisez eclipse pour importer" android "projet en zxing-maître
- Télécharger core-3.2.1.bocal de " http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ "
- créer le dossier "libs" dans "android" projet et coller cor-3.2.1.jar dans le dossier libs
- cliquez sur project: choisissez "properties" - > "Java Compiler" pour changer le niveau à 1.7. Puis cliquez sur "Android" modifier "Project build target" pour android 4.4.2+, Car utiliser 1.7 nécessite de compiler avec Android 4.4
- If " CameraConfigurationUtils.java "n'existe pas dans"zxing-master/android/app/src/main/java/com/google/zxing/client/android/camera/". Vous pouvez le copier à partir de "zxing-master/android-core/src/main/java/com/google/zxing/client/android/camera/" et coller à votre projet.
- Propre et de construction du projet. Si votre projet affiche une erreur à propos de" switch - case", vous devriez les changer en"if - else".
- terminé. Nettoyer et de construction du projet. Vous pouvez cliquer sur "Proprties" > "Android" > cliquez sur "Bibliothèques" à utiliser pour votre projet.
j'ai eu un problème avec la mise en œuvre du code jusqu'à ce que je trouve un site web (Je ne peux pas le trouver à nouveau en ce moment) qui a expliqué que vous devez inclure le nom du paquet dans le nom de l'intention.putExtra.
il remonterait l'application mais ne reconnaîtrait aucun code à barres, et quand je l'ai changé de.
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
à
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
ça a bien marché. Juste un conseil pour tout autre programmeur andorid novice.
en utilisant le pénétrateur fourni est mieux. Il vous permet de demander à votre utilisateur d'installer le scanner de code à barres s'ils ne l'ont pas. Il vous permet également de personnaliser les messages. The IntentIntegrator.La constante REQUEST_CODE contient la valeur du code de requête pour le résultat onActivityResult à vérifier dans le bloc if ci-dessus.
IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity
intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR
si vous voulez inclure dans votre code et ne pas utiliser L'IntentIntegrator que la bibliothèque Zxing recompose, vous pouvez utiliser certains de ces ports ""
http://code.google.com/p/android-zxinglib /
http://code.google.com/p/android-quick-response-code /
j'utilise le premier et fonctionne parfaitement! Il a un projet type pour l'essayer
L'utilisation de Zxing de cette façon nécessite un utilisateur d'installer également l'application de scanner de code à barres, ce qui n'est pas idéal. Ce que vous voulez probablement est de regrouper Zxing dans votre application directement.
je recommande fortement d'utiliser cette bibliothèque: https://github.com/dm77/barcodescanner
il prend tous les problèmes de construction folle que vous allez rencontrer en essayant d'intégrer Xzing ou Zbar directement. Il utilise les bibliothèques sous les couvertures, mais les enveloppe dans une API très simple à utiliser.
détection de code à barres est maintenant disponible dans Google Play services . Code lab du processus de configuration, voici le api docs , et un sample project .
vous pouvez utiliser ce guide de démarrage rapide http://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start / avec exemple simple projet de construire application android sans IntentIntegrator.