ZXing : Comment tester le scan de code QR sur l’émulateur
Par Florent le jeudi 23 avril 2009, 16:28 - Tutorial - Lien permanent
La semaine dernière (Tutorial : Scanner et générer des codes QR (2D) sur Android),
nous avons vu comment faire appel à l’application Barcode Scanner afin de
décoder un code QR. Barcode Scanner ne propose que l’appareil photo pour la
capture de l’image du code, ce qui le rend inutilisable sur l’émulateur.
Il est possible en utilisant JMF et une connection TCP/IP émulateur/hôte de simuler l’appareil photo avec la Webcam (expliqué ici) mais cela n’est pas pratique pour nos besoins.
La solution retenue est de créer une nouvelle activité de scan qui prend en paramètre une image présente sur la sdcard. Pour ce faire, il vous faudra :
- Créer une image de sdcard et la monter dans l’émulateur (expliqué ici) ;
- Charger des images de codes QR (format png ou jpeg) sur cette sdcard (voir lien précédent) ;
- Créer une IntentFilter qui aura la même action que l’activité de scan de ZXing :
-
<activity android:name="ScanFileActivity">
-
<intent-filter>
-
<action android:name="com.google.zxing.client.android.SCAN" />
-
<category android:name="android.intent.category.DEFAULT" />
-
</intent-filter>
-
</activity>
Ainsi, lorsqu’une Intent avec cette action sera soumise, le système Android proposera une liste déroulante des applications capables de les traiter.
- Ensuite il faut créer la classe de l’activité ScanFileActivity. L’écran de cette activité affichera une liste des images présentes sur la SDCard et lorsque l’une d’entre elles sera choisie, un objet QRcodeReader est instancié dans un thread avec les données de l’image en paramètre. Cette classe de la bibliothèque ZXing prend en paramètre un objet MonochromeBitmapSource adapté à la classe Bitmap d’Android via la classe RGBMonochromeBitmapSource
- La classe ScanFileActivity renvoie un résultat en respectant le même format que CaptureActivity (classe de Barcode Scanner). Du coup, il n’y aucun changement à faire sur l’activité principale écrite lors du précédent article.
Commentaires
Bonjour,
j'ai regardé le site http://www.tomgibara.com/android/ca... et je ne comprends pas ce que je dois faire des sources java fournies et je ne trouve pas d'apk.
Merci.
Parfait, merci beaucoup, exactement ce dont j'avais besoin... Sauf que la classe ScanFileActivity n'est plus disponible, serait-il possible de la remettre en ligne? Ce tutorial serait bien plus utile ainsi.
Merci