Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any way to store full size image returned from camera activity in internal memory?

I am using

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(externalFileObj));

intent to call default camera activity. To get full image you need to specify intent.putExtra(). But this always requires URI that works only for external storage files.

I tried to create a temp.jpg image in internal memory and pass its URI

Uri.fromFile(new File(getFilesDir() + "/temp.jpg"));

but the camera activity won't return back after the image is captured.

So there is no way to get Full size image from default camera application in our activity without using any external storage ? Assuming that the device do not have SD card or currently in use is there no way I can avoid using it ?

Yes I know we can create our own camerapreview surface but I want to use the default camera application as it is natural with many more options.

Thanks.

like image 555
Pritam Avatar asked Jan 08 '11 03:01

Pritam


1 Answers

Ah! I got it. Your files directory in internal memory is private by default and is not writable by external apps (e.g. Camera app is external app)

Just create a new directory in writable mode in your application space (internal memory) and pass this URI to the camera Activity. And everything works fine. No need of external storage to be present at all. Tested and works fine.

like image 127
Pritam Avatar answered Nov 15 '22 01:11

Pritam