2013-01-22 14 views
16

L'email viene ricevuta dal destinatario, ma senza allegato. Ecco il codice, ogni esperto sa dove ho sbagliato?Android Intent: Invia un messaggio di posta elettronica con allegato immagine

Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND); 

String aEmailList[] = { "mymailgmail.com" }; 
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList); 

messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
...  
messageIntent.setType("image/jpeg"); 
File downloadedPic = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "MyApp.jpg"); 

messageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic)); 

startActivity(Intent.createChooser(messageIntent, getResources().getString(R.string.chooser_pic))); 

ottengo:

file di

: // percorso attaccamento deve puntare a file: // sdcard. Ignora il file allegato: //..il nome del documento è MyApp.jpg

Non riesco a ottenere l'immagine, solo sopra il messaggio di testo. Grazie.

+0

stesso problema http://stackoverflow.com/questions/31847086/how-to-attach-jpg-or-png-file-to-gmail -or-facebook – Aditya

risposta

40

Try sottostante Codice ...

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("application/image"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{strEmail}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Test Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "From My App"); 
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/Myimage.jpeg")); 
startActivity(Intent.createChooser(emailIntent, "Send mail...")); 
+3

Ho provato ad usarlo, ma l'allegato manca nell'email ricevuta. Qualche idea, perché è così? – Amrit

+0

Controlla il tuo percorso del file allegato. Penso che potrebbe essere sbagliato. Il percorso –

+0

è corretto e il file è anche visto come allegato con l'e-mail alla fine del mittente. Ma una volta inviata l'email, l'allegato non è visibile né sul mittente né sul destinatario. – Amrit

8
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailaddress); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
emailIntent.setType("application/image"); 

Uri uri = Uri.parse("file://" + filepath); 
emailIntent.putExtra(Intent.EXTRA_STREAM, uri); 
startActivity(emailIntent); 
+0

qualcuno può per favore aiutarmi come usare questo codice per inviare un'immagine dalla mia cartella delle risorse – Erum

+1

Potrebbe non essere nemmeno necessario il "setType" perché sarebbe in conflitto con l'aver fatto 'setType ("text/html"), giusto? Sembra che Intent.EXTRA_STREAM calcoli il tipo per l'allegato; almeno ha funzionato per me quando ho rimosso il secondo "setType". E la posta è arrivata al MTA di destinazione con Content-Type: image/jpeg; name = "photo000001.jpg" nella parte del messaggio per l'immagine. – idarwin

+0

questo ha funzionato per me – adrian4aes

Problemi correlati