IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

ACTION_IMAGE_CAPTURE problème version


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut 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 : 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);
    et voici le onActivityResult :
    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);}
    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 : 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 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

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Je ne sais pas si ça pourra t'aider mes les warnings qui te remonte, font références à cette partie de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     private Uri mSaveUri;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     private void  [Search] setupCaptureParams() {
            Bundle myExtras = getIntent().getExtras();
            if (myExtras != null) {
                mSaveUri = (Uri) myExtras.getParcelable(MediaStore.EXTRA_OUTPUT);
                mCropValue = myExtras.getString("crop");
            }
        }
    L'erreur est sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mSaveUri = (Uri) myExtras.getParcelable(MediaStore.EXTRA_OUTPUT);
    Essaye plutôt d'insérer une URI au lieu d'une String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    PS: tu trouveras le code source ici
    http://grepcode.com/file/repository....mera.0mSaveUri

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Merci beaucoup pour ce lien, Je ne connaissais pas ce site (il me fait un peu peur ^^).
    Effectivement en passant une Uri ça marche mieux.

    Me reste plus qu'à bien gérer l'orientation des photos suivant si je suis en mode portrait ou landscape.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème version d'excel
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/05/2008, 21h46
  2. Problème version Framework .Net à l'installation
    Par David Fouejio dans le forum Windows Forms
    Réponses: 8
    Dernier message: 12/04/2008, 00h25
  3. Problème version 2.31
    Par MENIER dans le forum BOUML
    Réponses: 7
    Dernier message: 04/09/2007, 17h19
  4. problème version des biblios
    Par zais_ethael dans le forum ANT
    Réponses: 2
    Dernier message: 23/02/2007, 15h48
  5. [MFC]Problème Version Release
    Par jagboys dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2005, 07h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo