Android在应用中通过电子邮件发送1张图片

时间:2011-10-05 21:13:29

标签: android image email camera

我在我的应用上创建了一个“联系我们”页面,我们的想法是您可以选择将图片发送到已预先确定的电子邮件地址。我遇到的问题是从电话库中获取所有图像并将其全部发送到电子邮件中。我想做的就是发一张照片。我似乎无法确定要改变什么才能发送一个图像。有人可以提供帮助吗?

这是我的代码:

public class EmailActivity extends Activity {
        Button send;
        EditText address, subject, emailtext;
        protected static final int CAMERA_PIC_REQUEST = 0;



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.email);
        send=(Button) findViewById(R.id.emailsendbutton);
        address=(EditText) findViewById(R.id.emailaddress);
        subject=(EditText) findViewById(R.id.emailsubject);
        emailtext=(EditText) findViewById(R.id.emailtext);

        send.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub

                            if
                            (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
                            {

                            }

                            File pngDir = new File(

                                    Environment.getExternalStorageDirectory(),
                                    "Android/data/com.random.jbrefurb/quote");

                            if (!pngDir.exists())
                                pngDir.mkdirs();

                            Uri pngUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;


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


                                      emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ "random@yahoo.co.uk"});

                                      emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject.getText());

                                      emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext.getText());

                                      emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);

                                      emailIntent.setType("image/jpeg");


                                    EmailActivity.this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));


                        }
                });

        Button back = (Button) findViewById(R.id.button1); 
        back.setOnClickListener(new View.OnClickListener() { 
            public void onClick(View view) {
                 // fire intent
                finish(); // finish current activity
                Intent austinIntent = new Intent(view.getContext(), 
                        ContactActivity.class); 
                startActivityForResult(austinIntent, 0);


            } 


        });




        Button camera = (Button) findViewById(R.id.button2); 
        camera.setOnClickListener(new View.OnClickListener() { 
            public void onClick(View view) {
                Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                  startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);  
;

                }     
            });  
        }  

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {         
        if (requestCode== 0 && resultCode == Activity.RESULT_OK){                 
            Bitmap x = (Bitmap) data.getExtras().get("data");                 
            ((ImageView)findViewById(R.id.imageView1)).setImageBitmap(x);                 
            ContentValues values = new ContentValues();

            values.put(Images.Media.TITLE, "title");         
            values.put(Images.Media.BUCKET_ID, "test");         
            values.put(Images.Media.DESCRIPTION, "test Image taken");         
            values.put(Images.Media.MIME_TYPE, "image/jpeg");         
            Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);         
            OutputStream outstream;                 
            try {                         
                outstream = getContentResolver().openOutputStream(uri);          
                x.compress(Bitmap.CompressFormat.JPEG, 100, outstream);         
                outstream.close();                 
                } catch (FileNotFoundException e) {                         
                    //                 
                    }catch (IOException e){                         
                        //                 
                        }         
            } }   
    } 

非常感谢提前

1 个答案:

答案 0 :(得分:0)

这是我在我的应用程序中使用的代码,如果您需要帮助,请尝试..

 private OnClickListener shareemail=new OnClickListener(){
        @Override
        public void onClick(View v) {


            String address = "your emailaddress";
        File filee;
       if(address.length()==0)  
       {
           AlertDialog.Builder ab=new AlertDialog.Builder(null);
            ab.setMessage("Email Address must not be empty!");
            ab.setPositiveButton("OK", new DialogInterface.OnClickListener(){
               @Override 
               public void onClick(DialogInterface dialog, int which) {

               }
            });
            ab.show();
       }
       else
       {

          ArrayList<Uri> uris = new ArrayList<Uri>();
         Uri u;
         Intent emailSession = new Intent(Intent.ACTION_SEND_MULTIPLE);
         emailSession.putExtra(Intent.EXTRA_SUBJECT,"your subject");
         emailSession.setType("images/*");
         emailSession.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {address});
         emailSession.putExtra(android.content.Intent.EXTRA_TEXT,"body text");
        FileWriter fw;
        BufferedWriter bw;
        try{

              filee = new File(path of image you want to send);
              if(filee.exists())
              {

                Uri u1 = Uri.fromFile(filee);
                uris.add(u1);
                emailSession.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

             startActivity(emailSession);
            }
        }
            catch (ActivityNotFoundException e)
            {
                Toast.makeText(getBaseContext(),  e.getMessage(), Toast.LENGTH_SHORT).show();
            }
    }}
    };