Bonjour tout le monde !
J'ai un léger problème dans mon programme Android, je vais essayer de l'expliquer clairement.
Mon but est de créer une application qui permette à l'utilisateur de prendre une photo d'un code-barres, qui est stockée sur la carte SD. Ensuite, grâce à la librairie Zxing de google, on décode le code-barres dans l'image.
Au niveau du décodage du code-barres, l'application marche parfaitement, j'ai testé avec l'émulateur. Cependant, lors du test sur un téléphone véritable (HTC ...) je me suis aperçu que l'appareil n'enregistre pas la photo sur la carte SD... et donc je me retrouve avec un fichier vide !!
Pour prendre la photo, je me suis servi du code se trouvant sur la FAQ (voir ici) et qui permet de prendre une photo en utilisant l'appareil photo disponible sur le téléphone.
Voici le code de ma fonction :
je récupère ensuite le résultat ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private void doTakePhotoAction() { File fw = new File(Environment.getExternalStorageDirectory(),"barcodeimg.jpg"); mImageCaptureUri = Uri.fromFile(fw); Intent mIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); mIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); try { mIntent.putExtra("return-data", true); startActivityForResult(mIntent, CAMERA_ACTIVITY); } catch (ActivityNotFoundException e) { //Log.e("doTakePhotoAction",e); } }
PS : au niveau des permissions à déclarer dans le fichier manifest, j'ai inséré ces 2 ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != RESULT_OK) { Toast.makeText(this, "La capture a échoué2"+imgPath,Toast.LENGTH_LONG).show(); return; } switch (requestCode) { case CAMERA_ACTIVITY: { launchDecoder(); break; } } }
Voila ! si vous voyez d'où vient le probleme, si vous avez des suggestions... n'hésitez pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.CAMERA"></uses-permission>![]()
Partager