Senden Sie E-Mail mit bitmap-Objekt als Anlage in Android?
Will ich senden Sie die bitmap als eine Anlage in der mail. Das Bild ist nicht gespeichert in SDCARD oder irgendwo in das Gerät. Das bitmap-Objekt wird zur Laufzeit angelegt, und das sollte als Anhang gesendet.
Dann, müssen Sie speichern Sie die Bitmap auf die SDCard, und dann hängen Sie es an die E-Mail (ich denke, Sie wissen, wie zu tun).
Warum ist es notwendig, speichern Sie es auf SDCard? Das ist, weil die E-Mail-app haben, die Datei zu Lesen, dass es geht, angebracht werden; so müssen Sie den Pfad und den Dateinamen der E-Mail-client. Wie jede andere app, die E-Mail-client nur Zugriff auf Dateien im eigenen Verzeichnis oder die SD-Karte.
Danke für die Informationen. Gibt es irgendeine Weise, die wir können, senden Sie das bitmap-Objekt direkt und nicht durch Speicherung auf die SD-Karte? Ich will nicht die Bilder zugänglich zu sein, aus anderen apps oder dem Benutzer.
Sie können die Aufnahme löschen, nachdem die E-Mail gesendet wurde.
Wie komme ich zu wissen, ob die E-Mail gesendet wurde oder nicht? Es gibt keine startActivityForResult Methode zum starten der intent ACTION_SEND. Auch wird es möglich sein, senden Sie Anhang als html.
Es gibt keine Möglichkeit zu wissen, ob die E-Mail-client die E-Mail gesendet. Sie könnte dann versuchen, schicken Sie die mail manuell (werfen Sie einen Blick auf die JavaMail-lib). Und... nicht sicher, was meinen Sie mit "senden-Anlage als HTML - "... du meinst, senden Sie das Bild im HTML-Code des Körpers? Wenn ja, es ist nicht möglich.
/* Return Drawable Object from Specified imageUrl In Web
@imageUrl : image Url in Web
*/try{///Getting image from WebInputStreamis=(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 MediaBitmap bitmap =((BitmapDrawable) drawable).getBitmap();//Store image in Devise database to send image to mailString path =Images.Media.insertImage(getContentResolver(), bitmap,"title",null);Uri screenshotUri =Uri.parse(path);finalIntent emailIntent1 =newIntent( 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){}
Dann, müssen Sie speichern Sie die Bitmap auf die SDCard, und dann hängen Sie es an die E-Mail (ich denke, Sie wissen, wie zu tun).
Warum ist es notwendig, speichern Sie es auf SDCard? Das ist, weil die E-Mail-app haben, die Datei zu Lesen, dass es geht, angebracht werden; so müssen Sie den Pfad und den Dateinamen der E-Mail-client. Wie jede andere app, die E-Mail-client nur Zugriff auf Dateien im eigenen Verzeichnis oder die SD-Karte.