title: Taking picture with camera and sending it to mail in Android
body: <p>I want to write an application that only has this functionality:
  - take image using phone camera
  - send it as a mail attachment to a given address</p>
  
  <p>I have written the following code, and i don't understand why i cant exit camera mode (pressing the accept button has no effect)</p>
  
  <pre><code>public class MainActivity extends Activity {
    private static final int CAMERA_REQUEST = 1888; 
      private ImageView imageView;
      private File f;
      public File getAlbumDir()
      {
  
          File storageDir = new File(
                  Environment.getExternalStoragePublicDirectory(
                      Environment.DIRECTORY_PICTURES
                  ), 
                  "BAC/"
              ); 
          return storageDir;
      }
      private File createImageFile() throws IOException {
          // Create an image file name
  
          String imageFileName =getAlbumDir().toString() +"/image.jpg";
          File image = new File(imageFileName);
          return image;
      }
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          this.imageView = (ImageView)this.findViewById(R.id.imageView1);
          Button photoButton = (Button) this.findViewById(R.id.button1);
          photoButton.setOnClickListener(new View.OnClickListener() {
  
              @Override
              public void onClick(View v) {
                  try {
                      f = createImageFile();
                      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                      cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
                      startActivityForResult(cameraIntent, CAMERA_REQUEST); 
                  } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
  
  
  
              }
          });
      }
  
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
          if (requestCode == CAMERA_REQUEST &amp;&amp; resultCode == RESULT_OK) {  
              Bitmap photo = (Bitmap) data.getExtras().get("data"); 
              imageView.setImageBitmap(photo);
  
              Intent i = new Intent(Intent.ACTION_SEND);
              i.setType("message/rfc822");
              i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"first.last@gmail.com"});
              i.putExtra(Intent.EXTRA_SUBJECT, "first picture");
              i.putExtra(Intent.EXTRA_TEXT   , "body of email");
  
              Uri uri = Uri.fromFile(f);
              i.putExtra(Intent.EXTRA_STREAM, uri);
              try {
                  startActivity(Intent.createChooser(i, "Send mail..."));
              } catch (android.content.ActivityNotFoundException ex) {
                  Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
              }
          }  
      } 
  }
  </code></pre>
  
  <p>I would appreciate any suggestions!
  Thanks!</p>