64 votes

Android \ Intent: envoyer un email avec pièce jointe

Dupliquer possible:
Email de la mémoire interne

L'e-mail est en cours de réception par le destinataire, mais sans la pièce jointe. Voici le code, tout expert sait où je me suis trompé?

 Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, "body text");
File root = Environment.getExternalStorageDirectory();
File file = new File(root, xmlFilename);
if (!file.exists() || !file.canRead()) {
    Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show();
    finish();
    return;
}
Uri uri = Uri.parse("file://" + file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Send email..."));
 

Je ne reçois aucun message de pain grillé. Merci.

58voto

CommonsWare Points 402670

Essayer:

 Uri.fromFile(file);
 

au lieu de:

 Uri.parse("file://" + file);
 

Essayez également text/xml pour votre type MIME, en supposant qu'il s'agit d'un fichier XML, comme le suggère le nom de votre variable.

13voto

Femi Points 42054

Le fichier n'est probablement pas lisible par tout le monde.

EDIT: en effet. Essayez de faire ceci:

 Uri uri = Uri.parse("file://" + file.getAbsolutePath());
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X