Bonjour à tous,
Je rencontre un problème avec mon code qui lance un intent sur l'appareil photo du téléphone. Le voici :
et voici le onActivityResult :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString()); startActivityForResult(cameraIntent, FIN_PRISE_PHOTO);
Le code est un bon copier coller d'un tuto. Après l'Uri que je récupère je l'envoi sur un serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if(requestCode == FIN_PRISE_PHOTO) { if (data != null && data.getExtras().get("data") != null) { bmp = (Bitmap) data.getExtras().get("data"); myUri = data.getData(); ImageView image =(ImageView) findViewById(R.id.sendPhotoImageView); image.setImageBitmap(bmp);}
Ca marche parfaitement sur un téléphone en version 2.2. J'ai une image petite et l'uri de la grande.
Hier on m'a demander de tester sur un téléphone en version 2.3.3 (maintenant 2.3.4 mais ca ne change rien) ce bout de code. Et là le data.getData() a une valeur null. L'image n'est pas enregistrée sur le téléphone..
Quand je lance l'appareil photo j'ai ce log (le même quelque soit la version)
Est ce que c'est un problème de version ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 04-29 10:46:33.023: WARN/Bundle(857): Key output expected Parcelable but value was a java.lang.String. The default value <null> was returned. 04-29 10:46:33.023: VERBOSE/CameraHolder(857): open camera 0 04-29 10:46:33.023: WARN/Bundle(857): Attempt to cast generated internal exception: 04-29 10:46:33.023: WARN/Bundle(857): java.lang.ClassCastException: java.lang.String 04-29 10:46:33.023: WARN/Bundle(857): at android.os.Bundle.getParcelable(Bundle.java:1106) 04-29 10:46:33.023: WARN/Bundle(857): at com.android.camera.Camera.setupCaptureParams(Camera.java:2026) 04-29 10:46:33.023: WARN/Bundle(857): at com.android.camera.Camera.onCreate(Camera.java:930) 04-29 10:46:33.023: WARN/Bundle(857): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 04-29 10:46:33.023: WARN/Bundle(857): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 04-29 10:46:33.023: WARN/Bundle(857): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 04-29 10:46:33.023: WARN/Bundle(857): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 04-29 10:46:33.023: WARN/Bundle(857): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 04-29 10:46:33.023: WARN/Bundle(857): at android.os.Handler.dispatchMessage(Handler.java:99) 04-29 10:46:33.023: WARN/Bundle(857): at android.os.Looper.loop(Looper.java:123) 04-29 10:46:33.023: WARN/Bundle(857): at android.app.ActivityThread.main(ActivityThread.java:3683) 04-29 10:46:33.023: WARN/Bundle(857): at java.lang.reflect.Method.invokeNative(Native Method) 04-29 10:46:33.023: WARN/Bundle(857): at java.lang.reflect.Method.invoke(Method.java:507) 04-29 10:46:33.023: WARN/Bundle(857): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 04-29 10:46:33.023: WARN/Bundle(857): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 04-29 10:46:33.023: WARN/Bundle(857): at dalvik.system.NativeStart.main(Native Method)
Est ce que ce code est limite et du coup c'est un miracle que ça marche sur 2.2 ?
Est ce que c'est la commande MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString() qui n'est plus bonne (avec un log dessus j'obtiens content://media/external/images/media, donc je pense que c'est bon) ?
Merci d'avance pour votre aide
Partager