开发者

Android Send only 1 image via email in app

开发者 https://www.devze.com 2023-04-10 18:48 出处:网络
I have created a \"C开发者_如何学Goontact Us\" page on my app and the idea is you have the option to send a picture to an already predetermind email address. The problem I have is its taking all the i

I have created a "C开发者_如何学Goontact Us" page on my app and the idea is you have the option to send a picture to an already predetermind email address. The problem I have is its taking all the images from the gallery of the phone and sending them all in the email. All I want to do is send one picture. I cant seem to work out what to change to be able to just send one image. Is there anyone who could help?

Here is my code:

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){                         
                        //                 
                        }         
            } }   
    } 

Many thanks in advance


this is code i used in my application try if you need help..

 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();
            }
    }}
    };
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号