title: Save picture captured in Internal Storage?
body: <p>I coded taking picture and saving it in external storage.It works well on my tablet with a sd card.However,I get some trouble with  my phone which is not support sd card.Can anyone help me  to write codes to save in internal storage.Thanks!</p>
  
  <pre><code>    ((Button) findViewById(R.id.btnTaken))
              .setOnClickListener(new OnClickListener() {
  
                  @Override
                  public void onClick(View v) {
                              takeImage();                            
                  }
                  });
  
  
  
  protected void takeImage() {
       Log.i(TAG,"onClick event");
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
          String currentDateandTime = sdf.format(new Date());
          String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() +
                                 "/Image_" + currentDateandTime + ".jpg";
  
  
          mCamera.takePicture(fileName);
          Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show();
  
  
  }
  public void takePicture(final String fileName) {
      Log.i(TAG, "Tacking picture");
      PictureCallback callback = new PictureCallback() {
  
          private String mPictureFileName = fileName;
  
          @Override
          public void onPictureTaken(byte[] data, Camera camera) {
              Log.i(TAG, "Saving a bitmap to file");
              Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length);
              try {
                  FileOutputStream out = new FileOutputStream(mPictureFileName);
                  picture.compress(Bitmap.CompressFormat.JPEG, 90, out);
                  picture.recycle();
                  mCamera.startPreview();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      };
  
      Camera.ShutterCallback shutter = new Camera.ShutterCallback() {
           public void onShutter() {
           Log.e(getClass().getSimpleName(), "SHUTTER CALLBACK");
           }
           };
           Camera.PictureCallback raw = new Camera.PictureCallback() {
               public void onPictureTaken(byte[] data, Camera c) {
                Log.e(getClass().getSimpleName(), "PICTURE CALLBACK RAW: " + data);
                mCamera.startPreview();
               }
               };
      mCamera.takePicture(shutter, raw, callback) ;
  
  
  
  }
  </code></pre>