2012-03-25 9 views
0

Ich bin versucht, zwei Möglichkeiten zu send email mit Bildanhang. Der Anhang zeigt zum Zeitpunkt des Schreibens Betreff, boby alles nach dem Ende dieser E-Mail am Empfänger zeigt es nur subject & Body nur keine attachment der user getting.Ich verstehe nicht, was mit meinem Code unten ist mein Code ist. Bitte geben Sie einen beliebigen Vorschlag ein, um diese Aufgabe zu beenden.So senden Sie eine E-Mail mit Anhang

Typ 1: -

Intent picMessageIntent = new Intent(Intent.ACTION_SEND); 
    picMessageIntent.setType("image/jpeg"); 
    File downloadedPic = new File(Environment.getExternalStorageDirectory(), strFileName + ".jpg");// Art_Nature 
    picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));//screenshotUri);//Uri.fromFile(new File("downloadedPic"))); //Uri.fromFile(downloadedPic)); // Uri.fromFile(new File("/path/to/downloadedPic"))); 
     startActivity(Intent.createChooser(picMessageIntent, "Share image using")); 

Typ 2:

ArrayList<Uri> uris = new ArrayList<Uri>(); 
Uri u;   
Intent picMessageIntent = new Intent(Intent.ACTION_SEND); 
picMessageIntent.setType("image/jpeg"); 
File downloadedPic = new File(Environment.getExternalStorageDirectory(), strFileName + ".jpg");// Art_Nature   
if(downloadedPic.exists()) 
    { 
     Uri u1 = Uri.fromFile(downloadedPic); 
     uris.add(u1); 
     picMessageIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 
     startActivity(picMessageIntent); 
    } 

Antwort

4

Hier ist etwas, das Ihnen helfen kann. Stellen Sie sicher, dass Sie Ihren Bilddateipfad richtig geschrieben haben. Vergessen Sie nicht das Trennzeichen "/" (versuchen Sie, ein Protokoll Ihres Pfades zu erhalten). Stellen Sie außerdem sicher, dass die Datei vorhanden ist.

/** ATTACHING IMAGE TO EMAIL AND SENDING EMAIL */ 
     Button b1 = (Button)findViewById(R.id.finalsectionsubmit); 
     b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

     Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
//  emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailSignature); 
     emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, toSenders); 
     emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subjectText); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, messageText+"\n\n"+emailSignature); 

     emailIntent.setType("image/jpeg"); 
     File bitmapFile = new File(Environment.getExternalStorageDirectory()+ 
      "/"+FOLDER_NAME+"/picture.jpg"); 
     myUri = Uri.fromFile(bitmapFile); 
     emailIntent.putExtra(Intent.EXTRA_STREAM, myUri); 


     startActivity(Intent.createChooser(emailIntent, "Send your email in:")); 
     eraseContent(); 
     sentMode = true; 
     } 
    }); 
+0

in diesem, was eraseContent() und sentmode – Aerrow

+0

eraseContent() ist ein privates Verfahren und sentMode ist ein Flag. Sie brauchen sie nicht, um die E-Mail zu senden. Der oben angegebene Code stammt von einem Android-Projekt. – Radu

+0

ok danke für deine Antwort – Aerrow

Verwandte Themen