0

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 .

Diaz diaz
  • 284
  • 1
  • 7
  • 21

1 Answers1

1

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);
Android
  • 1,420
  • 4
  • 13
  • 23
Sayed Talha
  • 119
  • 8