Reputation: 33
Can any ony give me guidelines on how to find the directory my Android device stores its images takem from a camera;
In the following code snippet, I intend to get a list of files in prior to launching the camera app. When returning from the camera app get a list of all the files in the same directory and process the newly added ones.
public void onBtnTakePhoto(final View view) {
existingfiles = UploadImageService.getFiles(<IMAGE_LOCATION>);
final Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
startActivityForResult(intent, TAKE_PICTURE);
}
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TAKE_PICTURE:
List<String> newFies = UploadImageService.getFiles(<IMAGE_LOCATION>);
newFies.removeAll(existingfiles);
for (String newFile : newFies) {
File file = new File(newFile);
addImage( Uri.fromFile(file), PictureSource.CAMERA);
}
break;
}
// regardless of which activity, check that files exist:
verifyFilesExist(images);
}
Upvotes: 0
Views: 4441
Reputation: 5568
As far as I understand it, you actually would have to launch your intent with the ACTION_IMAGE_CAPTURE
action (instead of INTENT_ACTION_STILL_IMAGE_CAMERA). Then, in onActivityResult
you have to get the data from the Intent: there you will find the reference to the image.
Look at the examples given here.
But as I look at your answer, you probably would find this more useful:
String[] projection = {
MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA
};
String selection = "";
String[] selectionArgs = null;
mImageExternalCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection, selection, selectionArgs, null);
mImageInternalCursor =
managedQuery(MediaStore.Images.Media.INTERNAL_CONTENT_URI, projection,
selection, selectionArgs, null);
then
String filePath =
mImageExternalCursor.getString(mImageExternalCursor.getColumnIndexOrThrow(
MediaStore.Images.ImageColumns.DATA));
(since you don't actually want to take a new picture).
Upvotes: 1