Question

Je suis en train de lancer l'activité de la caméra en utilisant le code suivant:

//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                      Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);

Et pour gérer le résultat:

//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...

Si j'utilise intent.putExtra(data) pour fixer la petite image à l'intention, et l'utiliser comme une miniature dans la prochaine activité, et le fichier est enregistré pleine taille comme soi-disant /sdcard/image.jpg.

Ceci est le comportement attendu (selon la documentation), d'avoir une petite image pour une vignette, et un grand fichier enregistré. Cependant lors du test de ce sur un G1 et un Eris, j'ai été voir un comportement étrange.

Sur le G1:

  • Bien que le code de résultat montre RESULT_OK, les données d'intention qui est retourné au gestionnaire de résultat est nul.
  • Aussi EXTRA_OUTPUT semble être complètement ignoré, je ne sais pas où il sauve l'image.

Sur le Eris:

  • Les données intention revient OK
  • EXTRA_OUTPUT est également ignoré, mais il sauve les images au magasin régulier des médias à /sdcard/dcim/100media

Alors, ma question est la suivante: est-il possible d'obtenir un comportement cohérent pour ce que je suis en train de faire en utilisant l'activité de caméra standard? Je pourrais essayer d'écrire une activité personnalisée et le faire fonctionner comme je veux, mais je préfère éviter cette route.

Était-ce utile?

La solution

Je n'ai pas de réponse à votre question car je suis nouveau dans le monde du développement Java / Android. Mais je tente quelque chose de semblable à ce que vous faites, sauf que je veux simplement prendre l'image puis le joindre à un message électronique.

Je mis en œuvre une partie de votre exemple et a pu vérifier que la caméra a créé le fichier que j'ai spécifié et que si j'utilise le même nom de fichier pour l'image suivante qu'il écrase le fichier précédent qui est ce que j'attendais.

Mais ce que je vais vraiment dire est peut-être vous devez tester si le pat « / sdcard / ... » existe réellement ou non. vous pourriez peut-être aussi simplifier votre processus en passant le chemin à l'activité suivante.

Bonne chance,

Jamie Irwin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top