Get Image Path From Camera Intent
Solution 1:
try this one
Intenti=newIntent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(i , 0);          
and call this
@OverrideprotectedvoidonActivityResult(int requestCode, int resultCode,
        Intent resultData) {
    super.onActivityResult(requestCode, resultCode, resultData);
        if (resultData != null) {
        String[] projection = { MediaStore.Images.Media.DATA };
                Cursorcursor= managedQuery(
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                        projection, null, null, null);
                intcolumn_index_data= cursor
                        .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToLast();
                StringimagePath= cursor.getString(column_index_data);
                BitmapbitmapImage= BitmapFactory.decodeFile(imagePath );
                imageView.setImageBitmap(bitmapImage );
            }
and use the prrmission what you want
<uses-permissionandroid:name="android.permission.CAMERA" /><permissionandroid:name="android.permission.FLASHLIGHT" /><uses-featureandroid:name="android.hardware.camera"/>Solution 2:
If you successfully implement the code you will get the image that is captured then manually you can save it for future use.
@OverrideprotectedvoidonActivityResult(int requestCode, int resultCode, Intent data) {  
        if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {  
            Bitmapphoto= (Bitmap) data.getExtras().get("data"); 
            videoView.setVisibility(View.INVISIBLE);
            imageView.setVisibility(View.VISIBLE);
            imageView.setImageBitmap(photo);
        }
    } 
Solution 3:
you can use following steps:
// create a global variable
File destination;
openCameraBtn.setOnClickListener(newOnClickListener() 
{
            @OverridepublicvoidonClick(View v) {
                 destination = newFile(Environment.getExternalStorageDirectory(),"image.jpg");
                 Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
                 intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(destination));
                 startActivityForResult(intent, CAMERA_PICTURE);
            }
        });
@OverridepublicvoidonActivityResult(int requestCode, int resultCode, Intent data) 
    {
    if(requestCode == CAMERA_PICTURE && resultCode == Activity.RESULT_OK) 
           {
           try{
            FileInputStreamin=newFileInputStream(destination);
            BitmapFactory.Optionsoptions=newBitmapFactory.Options();
            options.inSampleSize = 10; //Downsample 10x
            Log.d("PP", " bitmap factory=========="+options);
            Bitmapuser_picture_bmp= BitmapFactory.decodeStream(in, null, options);
        userImage.setImageBitmap(user_picture_bmp);
        } catch (Exception e) 
          { e.printStackTrace();
         }
    } 
please declare permission and feature in your manifest file.
<uses-permissionandroid:name="android.permission.CAMERA" /><uses-featureandroid:name="android.hardware.camera" />if u want in more detail then you can use following link:
http://developer.android.com/guide/topics/media/camera.html
i hope you will success.
Solution 4:
You're probably running a Samsung device. I believe this is a bug that occurs in these devices. You have to get the URI otherwise. Do this:
/**
  * (This is a variable instance) Contains the path and file name where you want to save the image.
  * Mainly used to start Intent.Action_View with this URI. (GalleryApp)
  */private Uri uriImage= null;
publicvoid onClickCamera(View v){
    // Cria uma intent para capturar uma imagem e retorna o controle para quem o chamou (NAO PRECISA DECLARAR PERMISSAO NO MANIFESTO PARA ACESSAR A CAMERA POIS O FAZEMOS VIA INTENT).// Creates an intent to capture an image and returns control to the caller
    Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
    // Cria um arquivo para salvar a imagem.// Creates an file to save the image.
    uriImage = ProcessaImagens.getOutputMediaFileUri( ProcessaImagens.MEDIA_TYPE_IMAGE, getActivity().getApplicationContext() );
    // Intent to pass a URI object containing the path and file name where you want to save the image. We'll get through the data parameter of the method onActivityResult().
    intent.putExtra( MediaStore.EXTRA_OUTPUT, uriImagem );
    // Starts the intent to image capture and waits the result.
    startActivityForResult( intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE );
}
The ProcessaImagens class is a class that I coded and I'm sharing with everyone. Can use this class to facilitate. It has a very good method to compress the image if you want to save images in the database. In its onActivityResult() method do this: 
@OverridepublicvoidonActivityResult( int requestCode, int resultCode, Intent data ) {
    // If finished activity on startForActivityResult.if ( resultCode == Activity.RESULT_OK ) {
        if ( requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE ) {
            StringimagePath= uriImage.getPath();
            // I will compress the imagem. Read the javadoc from method and you'll see which it returns both bitmap and array bytes.
            List<Object> imageCompact = ProcessaImagens.compactarImagem( uriImagem.getPath() );
            BitmapimageBitmap= (Bitmap) imageCompact.get( 0 );
            byte[] imageBytes = (byte[]) imageCompact.get( 1 );
        }
    }
    // If canceled activity on startForActivityResult.elseif ( resultCode == Activity.RESULT_CANCELED ) {
        if ( requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE ) {
            // User canceled the image capture.
            Log.d( getTag(), "Image capture canceled!" );
        }
    }
    // If an error occurred in the activity on startForActivityResult.else {
        // Failed the image capture, alert the user.
        Toast.makeText( getActivity().getApplicationContext(), "FAILED! The image capture failed!", Toast.LENGTH_LONG ).show();
        Log.e( getTag(), "FAILED! The image capture failed!" );
    }
}
Note that I used getActivity().getApplicationContext() because I'm getting the context from a Fragment and not from Activity. I believe with this method you can have what you want. Just make little changes how form to get context.
Solution 5:
Cursorcursor= getContentResolver().query(Media.EXTERNAL_CONTENT_URI, newString[]{Media.DATA, Media.DATE_ADDED, MediaStore.Images.ImageColumns.ORIENTATION}, Media.DATE_ADDED, null, "date_added ASC");
         if(cursor != null && cursor.moveToFirst())
         {
             do {
                 Uriuri= Uri.parse(cursor.getString(cursor.getColumnIndex(Media.DATA)));
                 StringphotoPath= uri.toString();
             }while(cursor.moveToNext());
             cursor.close();
         }
when while loop doing the last itration it give the image path which in captured last time.
Post a Comment for "Get Image Path From Camera Intent"