2017-10-20 23 views
2

J'essaie de joindre une image à un message électronique, mais lorsque le client de messagerie local s'ouvre, il n'est pas attaché.Nom de code 1: Échec de la connexion d'images au message électronique

Le client Gmail affiche un message Impossible de joindre le fichier.

Le client de messagerie Yahoo ne montre aucun avertissement mais il ne joint pas l'image non plus. J'utilise un périphérique Lenovo K6 avec Android 7.0 pour tester.

C'est le code que je l'habitude de joindre l'image au message e-mail:

Message m = new Message(content); 
m.getAttachments().put(imgUri, "image/png"); 

essayées avec « image/jpeg » aussi bien mais en vain.

L'URI fichier ressemble à ceci:

file:///storage/emulated/0/DCIM/Camera/IMG_20171015_170852.jpg 

J'ai même essayé de déplacer l'image à un emplacement sous FileSystemManager.getInstance().getAppHomePath() mais il ne fonctionne toujours pas.

Même si j'utilise l'objet Capture pour créer une nouvelle image ou en choisir une existante dans la galerie, le résultat est le même. Mais si j'attache manuellement une image depuis l'intérieur du client de messagerie, tout fonctionne comme prévu.

Le journal Android n'est pas très utile.

10-20 12: 14: 15,695 32049 32049 E Gmail: Erreur fixation ajoutant

10 au 20 décembre: 14: 15,695 32049 32049 E Gmail: DSH: impossible de créer la fixation locale

décembre 10 à 20: 14: 15,695 32049 32049 E Gmail: à dsi.a (SourceFile: 132)

10-20 12: 14: 15,695 32049 32049 E Gmail: à cmd.a (SourceFile: 1840)

10-20 12: 14: 15.695 32049 32049 E Gmail: à cmp.run (Sou rceFile: 4)

10-20 12: 14: 15,695 32049 32049 E Gmail: à cmd.a (SourceFile: 665)

10-20 12: 14: 15,695 32049 32049 E Gmail: à cmd. un (SourceFile: 422)

10-20 12: 14: 15,695 32049 32049 E Gmail: à cmd.N (SourceFile: 536)

10-20 12: 14: 15,695 32049 32049 E Gmail: à cmd.onCreate (SourceFile: 181)

10-20 12: 14: 15.695 32049 32049 E Gmail: à l'adresse com.google.android.gm.ComposeActivityGmail.onCréer (SourceFichier: 4 0)

Je suis à court d'options. Un conseil, s'il vous plaît?

+0

Qu'est-ce que 'm'? .. – greenapps

+0

m est codenameone Objet de message. Edité le message original pour clarifier cela. –

+0

vous ne devriez pas exposer uris avec le fichier: // schéma – Selvin

Répondre

3

Vous ajoutez incorrectement la pièce jointe.getAttachments() est utilisé pour retourner l'URI de fichier existant et la paire de type MIME, pas la meilleure façon d'ajouter une pièce jointe.

Essayez ceci:

m.setAttachment(imgUri); 
m.setAttachmentMimeType(Message.MIME_IMAGE_PNG); 

Aussi, vérifiez le chemin URI et assurez-vous qu'il est correct que je pouvais voir ce file:///.

Je vous suggère également de placer le fichier dans le répertoire personnel de votre application.

+0

Je ne vois pas ce qui ne va pas avec le chemin. Le vôtre est le même que d'OP. – greenapps

+1

J'ai utilisé m.getAttachments(). Put (imgUri, "image/png"); parce que c'est comment c'est documenté: https://www.codenameone.com/javadoc/com/codename1/messaging/Message.html –

+1

Cela a fonctionné. Cependant, si l'on veut ajouter plus de pièces jointes, il doit appeler m.getAttachments() après chaque setAttachment/setAttachmentMimeType, car sinon, il remplacera simplement l'ajout précédent. Une méthode très particulière pour ajouter des pièces jointes en effet. –

0
Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "attachment"); 
i.putExtra(Intent.EXTRA_TEXT , "PFA"); 
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(destinationFile));//image file 

startActivity(Intent.createChooser(i, "Send mail...")); 
+0

Ce que vous essayez de dire n'est pas clair. S'il vous plaît élaborer. – greenapps

+1

C'est un code natif Android pour envoyer des emails avec des pièces jointes. – Diamond