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 :

Prendre une photo et onActivityResult non lancé


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Par défaut Prendre une photo et onActivityResult non lancé
    Bonjour,

    J'essaie de prendre une photo à partir de mon application avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(i, 1);
    Cela lance bien la prise de photo, celle-ci prise, il demande de l'enregistrer ou de l'ignorer, et revient à l'application.

    Mais onActivityResult n'est pas exécuté et je ne peux donc récupérer la photo et je ne comprends pas pourquoi.
    Une explication possible ?

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    C'est quoi le modèle de ton téléphone ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Par défaut
    Samsung SII
    Android 2.3.5

    J'ai essayé un script qui permet de vérifier s'il y a un bug mais il n'y en a pas.

    Edit : je viens aussi d'essayer sur un Alcatel one touch idol ultra (4.1) et ça ne fonctionne pas non plus.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il est possible de voir le code complet ?
    Rien dans le logcat ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Par défaut
    Voici le code épuré.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    public class MaCLasse extends Activity implements OnClickListener {
     
    	static private final String[] email = {"adresse@mail"};
     
    	private TextView sendmail;
     
    	@Override
    	public void onCreate(Bundle bundle) {
    		super.onCreate(bundle);
    		requestWindowFeature(Window.FEATURE_NO_TITLE);
    		setContentView(R.layout.main_activity);
     
    		setupUIEle();
        }
     
    	private void setupUIEle()
    	{		
    		sendmail = (TextView) findViewById(R.id.sendmail);
    		sendmail.setOnClickListener(this);
        }
     
    	public void onClick(View v)
    	{
    		if (v.equals(sendmail))
    		{
    			captureImage();
    		}
    	}
     
        private void captureImage()
        {
        	Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        	startActivityForResult(i, 1);    	
        }
        @override
        protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
        	Log.v("","test travDetails onAct");
        	super.onActivityResult(requestCode, resultCode, data);
           	Uri picUrl = null;
     
           	if (data != null) {
           		picUrl = data.getData();
           	}
        	Intent intent= new Intent(android.content.Intent.ACTION_SEND);
    	intent.setType("jpeg/image");
     
    	String head = "Entete\n";
    	String text = "Envoyé depuis mon smartphone Android\n";
     
    	intent.putExtra(android.content.Intent.EXTRA_EMAIL, email);
            intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Sujet");
            if (picUrl != null) {
            	intent.putExtra(android.content.Intent.EXTRA_STREAM, picUrl);
            }
            intent.putExtra(android.content.Intent.EXTRA_TEXT, head + text);
            startActivity(Intent.createChooser(intent,"Par mail..."));
        }
     
    }

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Deux choses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (v.equals(sendmail))
    je ne suis pas sur que cela marche...
    En l'occurence (v == sendmail) suffirait.
    Mais encore plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (v.getId() == R.id.sendmail) {
    Du coup même pas besoin de conserver le pointeur sur le TextView.

    Ensuite le onActivityForResult me semble bizarre...
    Normalement il doit ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @override
        protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            if (requestCode == 1) {  // <= Utiliser une constante pour éviter de se tromper
                Log.v("MaCLasse","onActivityResult <= captureImage : "+resultCode); // <= toujours utiliser un tag correspondant au code (par exemple le nom de la classe), cela permet de filtrer le logcat
     
                // ici on vient bien de la fonction captureImage()
                if (resultCode == RESULT_OK) {
                    // tout est bon
                }
            } else
                super.onActivityResult(requestCode,resultCode,data);
    }
    Pour terminer on peut voir le logcat de l'application ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/05/2015, 13h24
  2. [AC-2000] prendre une photo par webcam
    Par Vil_c dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/07/2009, 11h14
  3. [WinDev 10X] Comment prendre une photo
    Par Cazaux-Moutou-Philippe dans le forum WinDev
    Réponses: 3
    Dernier message: 30/10/2006, 12h59
  4. Réponses: 1
    Dernier message: 20/10/2006, 09h43
  5. Réponses: 2
    Dernier message: 20/10/2006, 00h20

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