Je joins une image PNG à un e-mail avec le code suivant:Envoi attachement PNG via l'application Android GMail
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, title);
values.put(MediaStore.Images.Media.DESCRIPTION, title);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/png");
Uri uri = activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream stream = activity.getContentResolver().openOutputStream(uri);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
stream.close();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_SUBJECT, "Message title");
intent.putExtra(Intent.EXTRA_TEXT, "Message body");
intent.putExtra(Intent.EXTRA_STREAM, uri);
activity.startActivity(Intent.createChooser(intent, activity.getString(R.string.share)));
L'application HTC natif e-mail se débrouille avec ce beau mais l'application GMail insiste en donnant à la pièce jointe une extension ".jpg" même si l'image est définitivement un PNG. Cela peut être juste un bug dans l'application GMail mais je pensais que je demanderais de toute façon.
C'est ce que LogCat montre lorsque la fixation est fixé:
I/Gmail ( 285): >>>>> Attachment uri: content://media/external/images/media/11
I/Gmail ( 285): >>>>> type: image/png
I/Gmail ( 285): >>>>> name: 1287752711300.jpg
I/Gmail ( 285): >>>>> size: 0
est-il un moyen de contrôler le nom du fichier utilisé par l'application GMail? Je n'ai rien trouvé d'évident dans la documentation de l'intention supplémentaire. Idéalement, je serais en mesure de spécifier le nom complet, mais même l'obtenir juste pour utiliser la bonne extension de fichier serait une victoire.
Vous étiez droite. Une fois que je l'ai converti pour utiliser un ContentProvider, GMail se comporte un peu plus judicieusement. C'est plus de code mais c'est probablement mieux de le faire de cette façon que de déposer des fichiers dans le Media store. –
Ce lien ne fonctionne plus, d'autres exemples? –
@ErikB Le même fichier peut maintenant être trouvé [ici] (http://code.google.com/p/openintents/source/browse/trunk/filemanager/FileManager/src/org/openintents/filemanager/FileManagerProvider.java) . –