title: Taking a high quality image through default camera activity and saving it o the sd card
body: <p>I am taking a high resolution picture through the default camera activity(using <code>intent.put Extras</code>),and saving it to the sd card,</p>
  
  <p><strong>Code:</strong></p>
  
  <pre><code>public class CameraActivity extends Activity implements OnClickListener {
      /** Called when the activity is first created. */
  
      Button takepicture ;
      ImageView iv ;
      TextView tv;
      Button show;
  
      String filepath;
      Intent i;
      Uri mUri;
  
      final static int cameraData = 0;
  
      File folder = null;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          takepicture = (Button) findViewById(R.id.button1);
          iv = (ImageView) findViewById(R.id.imageView1);
          tv = (TextView) findViewById(R.id.textView1);
          show = (Button) findViewById(R.id.button2);
          takepicture.setOnClickListener(this);
          show.setOnClickListener(this);
      }
  
      @Override
      public void onClick(View v) {
          // TODO Auto-generated method stub
  
          switch(v.getId()){
  
          case R.id.button1:
  
              String sdcardstate = android.os.Environment.getExternalStorageState();
  
              if(sdcardstate.contentEquals(android.os.Environment.MEDIA_MOUNTED)){
  
                   filepath = Environment.getExternalStorageDirectory().getPath();
  
                   folder = new File(filepath,"wax");
  
                   if(!folder.exists()){
                       try {
                          folder.createNewFile();
                           Log.d("folder created", "ya");
                      } catch (IOException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                      }
                   }
  
                   mUri = Uri.fromFile(folder);
                   Log.d("bk", mUri.toString());
  
                   i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                   i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);
  
                   Log.d("extra", "extra");
                   startActivityForResult(i,cameraData);
              }
              break;
  
          case R.id.button2:
  
              File f = new File(filepath,"bmp.png");
  
              Bitmap myBitmap = BitmapFactory.decodeFile(f.getAbsolutePath());              
  
              iv.setImageBitmap(myBitmap);                
              break;
          }           
      }
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          // TODO Auto-generated method stub
          super.onActivityResult(requestCode, resultCode, data);
  
          if(resultCode==RESULT_OK){
  
              tv.setText("Result ok");
              Log.d("ok", "ok");
              Bundle extras = data.getExtras();
  
              Bitmap bmp = (Bitmap) extras.get("data");
          }
      }
  }
  </code></pre>
  
  <p>The camera activity starts , the image is taken , But when i click save , it does not return and force closes.</p>
  
  <p>I have read quite a few threads on this , Learnt that file must be created before the camera activity is started , but still it does not.</p>
  
  <p>Please help , I'm stuck on this problem for a week or so.</p>
  
  <p>Logcat error</p>
  
  <pre><code>06-15 16:05:50.205: W/dalvikvm(1780): threadid=10: thread exiting with uncaught exception (group=0x4001d800)
  06-15 16:05:50.205: E/AndroidRuntime(1780): FATAL EXCEPTION: GLThread 12
  06-15 16:05:50.205: E/AndroidRuntime(1780): java.lang.IllegalArgumentException: No configs match configSpec
  06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
  06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
  06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
  06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
  06-15 16:05:50.294: W/ActivityManager(59):   Force finishing activity com.android.camera/.Camera
  06-15 16:05:50.444: V/camera(1780): stopPreview
  </code></pre>