Desidero inviare la bitmap come allegato nella posta. L'immagine non è memorizzata in SDCARD o in qualsiasi parte del dispositivo. L'oggetto bitmap viene creato in fase di esecuzione e deve essere inviato come allegato.Invia e-mail con oggetto bitmap come allegato in Android?
8
A
risposta
9
Quindi, è necessario salvare Bitmap su SDCard, quindi collegarlo all'e-mail (suppongo che si sia know how to do so).
Perché è necessario salvarlo sulla scheda SD? Questo perché l'app di posta elettronica dovrà leggere il file che verrà allegato; quindi, devi passare il percorso e il nome del file al client di posta elettronica. Come qualsiasi altra app, il client di posta elettronica può solo accedere ai file memorizzati nella propria directory privata o nella SDCard.
4
/* Return Drawable Object from Specified imageUrl In Web
@imageUrl : image Url in Web
*/
try {
/// Getting image from Web
InputStream is = (InputStream) new URL(imageUrl).getContent();
// storing image from stream
drawable = Drawable.createFromStream(is, "srcName");
is.close();
// converting drawable object to Bitmap to store in content providers of Media
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// Store image in Devise database to send image to mail
String path = Images.Media.insertImage(getContentResolver(), bitmap,"title", null);
Uri screenshotUri = Uri.parse(path);
final Intent emailIntent1 = new Intent( android.content.Intent.ACTION_SEND);
emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent1.putExtra(Intent.EXTRA_STREAM, screenshotUri);
emailIntent1.setType("image/png");
startActivity(Intent.createChooser(emailIntent1, "Send email using"));
}
catch(Exception e) { }
+0
ha funzionato come un incantesimo! Grazie – LeoSarena
Grazie per l'informazione. C'è un modo in cui possiamo inviare direttamente l'oggetto bitmap e non salvandolo sulla sdcard? Non voglio che le immagini siano accessibili ad altre app o all'utente. – mobiledev
È possibile eliminare l'immagine dopo l'invio dell'e-mail. – Cristian
Come posso sapere se l'e-mail è stata inviata o meno? Non esiste alcun metodo startActivityForResult per avviare l'intento ACTION_SEND. Inoltre, sarà possibile inviare allegati come html. – mobiledev