I am using following code to select a image or video from gallery :
imgGallery.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent pickPhoto = new Intent(Intent.ACTION_GET_CONTENT);
pickPhoto.setType("*/*");
String[] mimetypes = {"image/*", "video/*"};
pickPhoto.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(pickPhoto,
SELECT_PICTURE_OR_VIDEO);
}
});
Please note I am using same button for image or video selection. So when onActivityResult will be called, is there any way from which I can know that a image was selected or video was selected from the gallery?
You can check with below code.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data.getData() != null) {
String path = data.getData().getPath();
if (path.contains("/video/")) {
Log.d(this.getClass().getName(), "Video");
} else if (path.contains("/images/")) {
Log.d(this.getClass().getName(), "Image");
}
}
}
This will work definitely because the path which we will get is something like I didn't find anything other than this, this will work definitely because the path it returns something like this /external/images/media/2928
where we will not get any repetitive data. Because the URI
here only contains the ID of the image in the database of android data store.