ACTION_IMAGE_CAPTURE problème version
Bonjour à tous,
Je rencontre un problème avec mon code qui lance un intent sur l'appareil photo du téléphone. Le voici :
Code:
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); |
et voici le onActivityResult :
Code:
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);} |
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.
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)
Code:
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 c'est un problème de version ?
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