title: How to capture image automatically using intent and without any user interaction
body: <p>I am trying to develop an android application that automatically takes picture using camera intent without any interaction from a user but cannot get the code to trigger the image capturing action automatically. anybody with help??. Here is my code</p>
  
  <pre><code>@Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      pictureButton = findViewById(R.id.captureFront);
      countDownTimer = new MyCountDownTimer(startTime, interval);
  
      if (!timerHasStarted) {
          countDownTimer.start();
          timerHasStarted = true;
  
      } else {
          countDownTimer.cancel();
          timerHasStarted = false;
          // startB.setText("RESTART");
      }
  
  }
  
  public void pictureCapture() throws IOException {
      pictureButton.setEnabled(true);
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
      File sampleDir = Environment.getExternalStorageDirectory();
      try {
          imagefile = File.createTempFile("image", ".jpeg", sampleDir);
      } catch (IOException e) {
          Log.e(TAG, "sdcard access error");
          return;
      }
      takePicture(shutter, raw, postview, jpeg);
  
      startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
  
  }
  
  public final void takePicture(Camera.ShutterCallback shutter,
          Camera.PictureCallback raw, Camera.PictureCallback postview,
          Camera.PictureCallback jpeg) {
  
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
          if (resultCode == RESULT_OK) {
              // Image captured and saved to fileUri specified in the Intent
              Toast.makeText(this, "Image saved to:\n" + data.getData(),
                      Toast.LENGTH_LONG).show();
          } else if (resultCode == RESULT_CANCELED) {
              // User cancelled the image capture
              Toast.makeText(this, "Image cancelled", Toast.LENGTH_LONG)
                      .show();
          } else {
              // Image capture failed, advise user
              Toast.makeText(this, "Image failed", Toast.LENGTH_LONG).show();
          }
      }
  
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
  }
  
  public class MyCountDownTimer extends CountDownTimer {
      public MyCountDownTimer(long startTime, long interval) {
          super(startTime, interval);
      }
  
      @Override
      public void onFinish() {
          // text.setText("Time's up!, finishes");
          countDownTimer.cancel();
          try {
              pictureCapture();
  
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  
      }
  
      @Override
      public void onTick(long millisUntilFinished) {
          // text.setText("" + millisUntilFinished / 1000);
      }
  
  }
  </code></pre>
  
  <p>};</p>