2009-08-17 4 views
7

Je sais qu'une variante de cette question a été posée avant trying-to-attach-a-file-from-sd-card-to-email Mais la solution proposée, à savoir un redémarrage ne semble pas le faire pour moi. J'ai vu un bon nombre d'affichages de groupe qui supportent ceci étant un problème. Je ne peux que supposer que le PO pour la question liée a fait d'autres changements, éventuellement au manifeste qui a permis à son code de fonctionner.Android Envoyer l'intention d'attacher la photo de sdcard comme 0 longueur fichier

Le comportement que je vois est l'intention de courrier électronique traitant la pièce jointe du jpeg à partir de la carte SD, mais traitant avec lui comme un fichier de longueur 0 qui est rejeté lors de l'envoi. J'ai essayé setType comme jpeg/image et image/jpeg comme je l'ai vu exprimé dans les deux sens.

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
    sendIntent.setType("jpeg/image"); 
    sendIntent.putExtra(Intent.EXTRA_EMAIL, "[email protected]"); 
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, R.string.email_subjectStart + 
      mWhatYouSpotted.getSelectedItem().toString() + 
      R.string.email_subjectEnd); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ sPhotoFileName)); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, sEmailBody); 

    startActivity(Intent.createChooser(sendIntent, "Email:")); 

Voici le logcat adb je suis arrivé quand je dernière testé:

V/DumbDumpersMain (3972): sPhotoUri = file: //sdcard/DumbDumpers/DumbDumper.jpg I/ActivityManager (56): Début de l'activité: Intent {action = android.intent.action.CHOOSER comp = {android/com.android.internal.app.ChooserActivity} (a des extras)} I/ActivityManager (56): Début de l'activité: Intent {action = android.intent.action.SEND type = drapeaux jpeg/image = 0x3000000 comp = {com.google.android.gm/com.google.android.gm.ComposeActivityGmail} (a des extras)} I/ActivityManager (56): activité de démarrage : Intent {action = android.intent.action.SEND type = jpeg/image drapeaux = 0x28 00000 comp = {com.google.android.gm/com.google.android.gm.ComposeActivity} (a des extras)} D/gmail-ls (120): MailProvider.query: contenu: // gmail-ls/labels/[email protected] (null, null) D/Gmail (2507): URI TROUVE: fichier: //sdcard/DumbDumpers/DumbDumper.jpg

Je suis frappais la tête contre celui-ci pour plus d'une semaine maintenant et ne peut toujours pas déterminer ce qui ne va pas. Des idées?

Répondre

7

Aurait dû faire plus de recherche ici avant de poster; problem sending an email with an attachment programmatically l'a résolu pour moi. Je n'ai que file://sdcard/DumbDumpers/DumbDumper.jpg, ce qui me semble dérangeant, c'est que j'ai réussi à joindre l'image. Vous avez besoin d'un / supplémentaire pour le faire fonctionner:

file:///sdcard/DumbDumpers/DumbDumper.jpg 
    ^
4

Votre type d'intention est erroné. Il devrait être

sendIntent.setType("image/jpg"); 
+2

"image/jpeg" est le type correct pour JPG –

Questions connexes