2011-10-05 24 views
0

我已經在我的應用上創建了「聯繫我們」頁面,並且您可以選擇將圖片發送到已經預定的電子郵件地址。我遇到的問題是將電話庫中的所有圖像全部通過電子郵件發送。我想要做的就是發一張照片。我似乎不知道要改變什麼才能發送一張圖片。有沒有人可以幫忙?Android只通過電子郵件在應用中發送1張圖片

這裏是我的代碼:

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[]{ "[email protected]"}); 

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

提前

回答

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