getoutputmediafileuri method is not accessible?

17,793

Solution 1

There is no inbuilt method getoutputmediafileuri() in android. It is a custom method someone write for getting file URI to store captured images in particular directory. You have to defined and put logic for it. Instead of that use this code,

EDIT:

btn01.setOnClickListener(new OnClickListener() {
   @Override
    public void onClick(View v) {

       Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
       imagesFolder.mkdirs(); // <----
       File image = new File(imagesFolder, "image_001.jpg");
       Uri uriSavedImage = Uri.fromFile(image);
       imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
       startActivityForResult(imageIntent,0);
  }
});

Now this will store your camera captured images in MyImages directory in sdcard with image_001.jpg name.

Solution 2

The getoutputmediafileuri() method is defined here: http://developer.android.com/guide/topics/media/camera.html#saving-media

Solution 3

Now the document has added the code. Just paste the at the end of your Class, it work well for me. Code See As Below.

public static final int MEDIA_TYPE_IMAGE = 1;
public static final int MEDIA_TYPE_VIDEO = 2;

/** Create a file Uri for saving an image or video */
private static Uri getOutputMediaFileUri(int type){
  return Uri.fromFile(getOutputMediaFile(type));
}

/** Create a File for saving an image or video */
private static File getOutputMediaFile(int type){
    // To be safe, you should check that the SDCard is mounted
    // using Environment.getExternalStorageState() before doing this.

    File mediaStorageDir = new   File(Environment.getExternalStoragePublicDirectory(
          Environment.DIRECTORY_PICTURES), "MyCameraApp");
    // This location works best if you want the created images to be shared
    // between applications and persist after your app has been uninstalled.

    // Create the storage directory if it does not exist
    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile;
    if (type == MEDIA_TYPE_IMAGE){
        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
    "IMG_"+ timeStamp + ".jpg");
    } else if(type == MEDIA_TYPE_VIDEO) {
        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
        "VID_"+ timeStamp + ".mp4");
    } else {
        return null;
    }

    return mediaFile;
}
Share:
17,793
Androelpha
Author by

Androelpha

Updated on June 03, 2022

Comments

  • Androelpha
    Androelpha almost 2 years

    I'm learning how to take a picture and save it's path into a file.

    According to the tutorials offers on android developers website, the method

    getoutputmediafileuri() is used, however, when I tried to use that method, i found that it's

    not accessible or undefined, i mean eclipse underlines this method with redline. I don't know

    how to fix this error.

    Please find below the code

    public class SaveCameraImageDemoActivity extends Activity {
    /** Called when the activity is first created. */
    
    Button btn01;
    private Uri fileURI;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        btn01 = (Button) findViewById(R.id.btn01);
        btn01.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
    
                Intent intenet = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                fileURI = getoutputmediafileuri();
                //intenet.putExtra("output", uri.getPath());
                startActivityForResult(intenet,0);
            }
        });
    }
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
      }
    }
    
  • Peter Zhu
    Peter Zhu about 9 years
    How to find the Android default image storage path?
  • Moudiz
    Moudiz over 8 years
    can you show me please an example how to add the above code in intent?