Diaz diaz
Diaz diaz

Reputation: 284

How to combine ACTION_IMAGE_CAPTURE and ACTION_VIDEO_CAPTURE together

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 .

enter image description here

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

Answers (1)

Sayed Talha
Sayed Talha

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

Related Questions