Reputation: 284
I need to call Intent
for image and video both at same time . It seems impossible similar to this . So a alternate way to do this is createChooser()
. But i am kinda stuck with the code below .
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, file.getAbsolutePath());
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, file.getAbsolutePath());
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
Intent[] intentArray = new Intent[]{takePictureIntent};
chooserIntent.putExtra(Intent.EXTRA_INTENT, takeVideoIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooserIntent, 1);
MediaStore.EXTRA_OUTPUT
not working . The file is empty after returning from camera . However it does open a chooser as below but file is empty .
Questions:-
1.How to can i combine both intents and provide separate files as MediaStore.EXTRA_OUTPUT
?
2. As we all know there are hundreds of camera apps in android so is this a good way to open such intent(Will it work in all devices regardless of manufacturer and API Level) ? Or i should move with an AlertDialog
to open intent for each action seperatly .
Upvotes: 0
Views: 940
Reputation: 119
Try this below code :
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
Intent chooserIntent = Intent.createChooser(takePictureIntent, "Capture Image or Video");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takeVideoIntent});
startActivityForResult(chooserIntent, CAMERA_IMAGES_REQUEST);
Upvotes: 1