J'essaie d'envoyer un pdf en pièce jointe d'Android. Voici le code:Comment ajouter une extension .pdf lors de l'envoi d'une pièce jointe depuis Android?
String[] mailto = {"[email protected]"};
Uri uri = Uri.parse("android.resource://com.mywebsite.sendemail/raw/mypdf");
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, mailto);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "My Subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "My Body");
emailIntent.setType("application/pdf");
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(emailIntent, "Send email using:"));
Maintenant, cela fonctionne, mais le problème est que la pièce jointe est appelée MyPDF au lieu de mypdf.pdf. Je n'arrive pas à comprendre comment l'envoyer avec son extension ... C'est ce dont j'ai besoin d'aide. Merci.
Merci Mark. J'ai été capable de résoudre le problème en copiant le fichier sur la carte SD, puis en utilisant Uri.fromFile. Je n'aime pas la solution car si la carte SD est manquante ou occupée, elle ne fonctionnera pas. J'ai mis une copie du pdf dans le répertoire/assets mais je n'ai pas réussi à le faire fonctionner avec Uri.fromFile ou Uri.parse. Vous ne savez pas pourquoi ... – nickfox
Hmmm ... 'file: /// android_asset/mypdf.pdf' pourrait fonctionner. J'ai seulement utilisé cette syntaxe pour les choses dans ma propre application, cependant, pas pour passer à une autre application. – CommonsWare
J'ai essayé 18 permutations différentes de fromFile et analyser, y compris en utilisant android_asset comme vous l'avez suggéré. Je me suis à peu près convaincu qu'il faut le lire sur la carte SD ... Ce qui est regrettable. C'est quelque chose qui pourrait vraiment être amélioré dans Android ... Voici l'uri que j'ai fini par utiliser pour lire de la carte: Uri uri = Uri.fromFile (nouveau fichier (Environment.getExternalStorageDirectory(), "mypdf.pdf")) ; – nickfox